Languages and runtimes
WASI 0.3 ratified: native async for WebAssembly components
- Category: Languages
- Status: confirmed
- Sources: Bytecode Alliance announcement, WASI v0.3.0 release, HN discussion
- Summary: The WASI Subgroup ratified WASI 0.3.0 on 2026-06-11, rebasing WASI onto the WebAssembly Component Model's async primitives. The release makes
stream<T>,future<T>, andasyncfirst-class constructs in the canonical ABI. The previous WASI 0.2start-foo/finish-footwo-call pattern and thepollableresource collapse into singleasync funcdeclarations, and input and output streams unify intostream<u8>with an accompanying future for completion and error status. The model is completion-based rather than readiness-based polling, closer toio_uringand IOCP than epoll. The host manages one shared event loop across all components. - Why it matters: Native async lets WebAssembly components compose concurrent I/O in-process without per-runtime event loops, removing a primary blocker for WASI-based microservice and plugin architectures; toolchain and runtime support is landing now in Wasmtime and language bindings.
- Follow-up: Track Wasmtime and guest-language (Rust, Go, Python) toolchain support reaching stable for WASI 0.3.