weblink
weblink copied to clipboard
WebLink
Linking Hashlink and other targets to the role of a webserver.
class Main {
function main() {
var app = new weblink.Weblink();
app.get(function(request,response)
{
response.send("HELLO WORLD");
});
app.listen(2000);
}
}
Features
- Uses libuv
- Minimal and concise with express lib in mind
- No dependencies, and easy integration
- Extremely fast, roughly 4x faster than Fastify with big data, and 2x with small Benchmark
Getting Started
Install dev version:
haxelib git weblink https://github.com/PXshadow/weblink
Include in build.hxml
-lib weblink
Targets
requires libuv (asys in the future)
- hashlink (uses libuv)
- more targets in the future using asys
Benchmark
Supported
-
methods
- [x] GET
- [x] POST
- [ ] OPTIONS
- [x] HEAD
- [x] PUT
-
encoding
- [ ] gzip
- [ ] compress
- [x] deflate
- [ ] br
- caching
- [ ] age
- [ ] expires
- security
- extra
- [x] content type
- [x] bytes (png image for instance)
- [x] redirects
- [x] serve web content (files ex: html/images/sounds)
- [ ] connection public ip (haxe 4.2)
- [x] projection (a type with certain attributes of another type, useful to send only some data)
Contributing
-
Fork
-
Clone and setup
-
Configure VSCode :
Add that in .vscode/launch.json :
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "HashLink (launch)", "request": "launch", "type": "hl", "cwd": "${workspaceFolder}", "preLaunchTask": { "type": "haxe", "args": "active configuration" } }, { "name": "HashLink (attach)", "request": "attach", "port": 6112, "type": "hl", "cwd": "${workspaceFolder}", "preLaunchTask": { "type": "haxe", "args": "active configuration" } } ] }
-
Develop (and press F5 to launch hashlink)
-
Pull request