wasm-compose 0.246.1

A library for composing WebAssembly components.
Documentation
package example:service@0.1.0;

interface types {
    resource request {
        constructor(headers: list<tuple<list<u8>, list<u8>>>, body: list<u8>);
        headers: func() -> list<tuple<list<u8>, list<u8>>>;
        body: func() -> list<u8>;
    }

    resource response {
        constructor(headers: list<tuple<list<u8>, list<u8>>>, body: list<u8>);
        headers: func() -> list<tuple<list<u8>, list<u8>>>;
        body: func() -> list<u8>;
    }

    enum error {
        bad-request,
    }
}

interface handler {
    use types.{request, response, error};

    execute: func(req: request) -> result<response, error>;
}

interface logging {
    resource logger {
        log: func(message: string);
    }

    get-logger: func() -> logger;
}

world service {
    import logging;
    export handler;
}

world middleware {
    import logging;
    import handler;
    export handler;
}