Sign in

    llhttp

    llhttp bindings for MoonBit

    http
    parser
    native
    Download zip
    Author
    Version
    0.1.0
    License
    MIT
    Last updated
    last year
    Downloads
    33

    #llhttp.mbt

    llhttp bindings for MoonBit.

    #Usage

    let request = "GET /api/user?id=123 HTTP/1.1\r\n" +
    "Host: api.example.com\r\n" +
    "Accept: text/html, application/json\r\n" +
    "Accept-Language: en-US\r\n" +
    "Connection: keep-alive\r\n\r\n"

    let parser = @llhttp.Parser::new()
    parser.on_message_begin(fn(_parser) {
    println("message begin")
    OK
    })
    parser.on_headers_complete(fn(_parser) {
    println("headers complete")
    OK
    })
    parser.on_message_complete(fn(_parser) {
    println("message complete")
    OK
    })
    parser.on_protocol(fn(_parser, protocol) {
    println("protocol: \{protocol}")
    OK
    })
    parser.on_url(fn(_parser, url) {
    println("url: \{url}")
    OK
    })
    parser.on_status(fn(_parser, status) {
    println("status: \{status}")
    OK
    })
    parser.on_method(fn(_parser, http_method) {
    println("method: \{http_method}")
    OK
    })
    parser.on_version(fn(_parser, version) {
    println("version: \{version}")
    OK
    })
    parser.on_header_field(fn(_parser, field) {
    println("header_field: \{field}")
    OK
    })
    parser.on_header_value(fn(_parser, value) {
    println("header_value: \{value}")
    OK
    })
    let errno = parser.execute(get_request_1)
    println("errno: \{errno}")
    println("type: \{parser.get_type()}")
    println("keep-alive: \{parser.should_keep_alive()}")

    // console output:
    //
    // message begin
    // method: GET
    // url: /api/user?id=123
    // protocol: HTTP
    // version: 1.1
    // header_field: Host
    // header_value: api.example.com
    // header_field: Accept
    // header_value: text/html, application/json
    // header_field: Accept-Language
    // header_value: en-US
    // header_field: Connection
    // header_value: keep-alive
    // headers complete
    // message complete
    // errno: OK
    // type: REQUEST
    // keep-alive: true

    #License

    MIT

    Source Files

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io