This is a minimal example of a
hyperlight-wasm
host application. It implements just enough of the wasi:http api
to run the sample_wasi_http_rust
server.
- Rust, including the
x86_64-unknown-nonetarget (which may be installed via e.g.rustup target add x86_64-unknown-none) clangjust(optional, but recommended)
If you want to follow the manual build instructions, you will also need:
just buildjust runFrom another terminal, you can then test the server:
curl http://localhost:3000/
curl -w'\n' -d "hola mundo" http://127.0.0.1:3000/echo
curl -I -H "x-language: spanish" http://127.0.0.1:3000/echo-headers
# get the content of .gitignore from github.com/jprendes/hyperlight-wasm-http-example
curl -w'\n' http://127.0.0.1:3000/proxyCompile the WIT and set the environment variables used when building (both the host and the guest):
wasm-tools component wit hyperlight.wit -w -o hyperlight-world.wasmBuild:
cargo build
Build the guest component:
cargo component build --release \
--manifest-path guest/Cargo.toml \
--target-dir targetAOT compile it:
cargo install hyperlight-wasm-aot
hyperlight-wasm-aot compile --component \
target/wasm32-wasip1/release/sample_wasi_http_rust.wasm \
target/wasm32-wasip1/release/sample_wasi_http_rust.binYou can then run the server:
cargo run -- target/wasm32-wasip1/release/sample_wasi_http_rust.bin