|
Some checks failed
CI / build-test-release (push) Failing after 7m15s
|
||
|---|---|---|
| .. | ||
| main.cpp | ||
| project.cpp | ||
| README.md | ||
| serve.sh | ||
WASI
Build a C++26 program for the wasm32-wasi target and run it in a browser.
Prerequisites
wasi-libc,wasi-libc++,wasi-libc++abi(Arch packages — provide/usr/share/wasi-sysroot/, whichcrafter-buildfinds automatically). Other distros: install the WASI SDK and setcfg.sysrootinproject.cpp.
Build
crafter-build
Output lands in bin/wasi-hello-wasm32-wasip1-native/:
wasi-hello.wasm— the compiled moduleindex.html+runtime.js— a minimal in-browser WASI shim, dropped in byEnableWasiBrowserRuntime(cfg)inproject.cpp. Stdout goes to the browser console.
Run in a browser
./serve.sh # any static file server works
Open http://localhost:8080/. The string from main() shows up in the
DevTools console.
Run in a standalone runtime
If you don't need the browser, drop the EnableWasiBrowserRuntime(cfg) line
from project.cpp and run the .wasm directly:
wasmtime bin/wasi-hello-wasm32-wasip1-native/wasi-hello.wasm