Project Blackbird ================= Make Fermyon Spin WebAssembly Modules run on NGINX Unit. The repository will contain some exploratory tools. Quickstart ========== Clone the spin repository $ git clone https://github.com/fermyon/spin.git Build the wasm module. $ cd spin/examples/wasi-http-rust $ cargo build --target wasm32-wasi Grab the Wasmtime C API $ wget -O- https://github.com/bytecodealliance/wasmtime/releases/download/v13.0.0/wasmtime-v13.0.0-x86_64-linux-c-api.tar.xz | tar -xvf - Clone this repository $ git clone git://git.digital-domain.net/project_blackbird.git Build it $ cd project_blackbird $ make WASMTIME_C_API=/path/to/wasmtime-c-api WASM_MODULE=/path/to/spin/examples/wasi-http-rust/target/wasm32-wasi/debug/wasi_http_rust.wasm Run it $ ./wasmtime-wasi-http Initializing... Loading binary... Compiling module... Setting function imports... [poll2::poll-oneoff] [streams2::read] [streams2::blocking-read] [streams2::subscribe-to-input-stream] [streams2::write] [streams2::blocking-write] [streams2::subscribe-to-output-stream] [default-outgoing-HTTP2::handle] [types2::new-fields] [types2::fields-entries] [types2::finish-incoming-stream] [types2::finish-outgoing-stream] [types2::incoming-request-method] [types2::incoming-request-path-with-query] [types2::incoming-request-headers] [types2::incoming-request-consume] [types2::new-outgoing-request] [types2::outgoing-request-write] [types2::set-response-outparam] [types2::incoming-response-status] [types2::incoming-response-headers] [types2::incoming-response-consume] [types2::new-outgoing-response] [types2::outgoing-response-write] [types2::future-incoming-response-get] [types2::listen-to-future-incoming-response] Initialising WASI... Instantiating module... Getting function exports... [HTTP#handle] [cabi_realloc] Shutting down... Done.