HeadlinesBriefing favicon HeadlinesBriefing.com

WASI 0.3 brings native async to WebAssembly components

Hacker News •
×

The WASI Subgroup ratified officially WASI 0.3 today, rebasing the system onto the WebAssembly Component Model and making async primitives native. The 0.3.0 spec is now stable and runtimes are beginning to ship support. By moving pollables, input‑streams and output‑streams into the canonical ABI, the new version eliminates the ad‑hoc tricks required in 0.2.

Async handling now lives in the host rather than each component, which supplies a single event loop shared across boundaries. New first‑class types—stream<T>, future<T> and async—behave like owned resources, letting the runtime schedule awaiting tasks as soon as a future resolves. Components no longer require individual loops, allowing seamless composition across components. This completion‑based model mirrors efficient OS APIs such as io_uring and IOCP.

The shift simplifies language bindings: generators can now emit idiomatic async functions for Rust, Python, JavaScript, C# and Go without manual poll loops. The revamped wasi:http interface introduces service and middleware worlds, enabling direct in‑process composition of micro‑services and cutting call latency from milliseconds to nanoseconds. With the spec stable, toolchains and hosts will roll out support in the coming weeks for production use.