Skip to content

PXshadow/weblink

Repository files navigation

weblink

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
    • GET
    • POST
    • OPTIONS
    • HEAD
    • PUT
  • encoding
    • gzip
    • compress
    • deflate
    • br
  • caching
    • age
    • expires
  • security
  • extra
    • content type
    • bytes (png image for instance)
    • redirects
    • serve web content (files ex: html/images/sounds)
    • connection public ip (haxe 4.2)
    • projection (a type with certain attributes of another type, useful to send only some data)

Contributing

  1. Fork

  2. Clone and setup

  3. 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"
                }
            }
        ]
    }
    
  4. Develop (and press F5 to launch hashlink)

  5. Pull request