WASI 0.3
8 hours ago
- #async programming
- #component model
- #WebAssembly
- WASI 0.3 is officially launched, featuring native async support in WebAssembly Components.
- The specification is stable, with runtime and toolchain support currently being implemented.
- WASI 0.3 rebases onto the WebAssembly Component Model's async primitives, simplifying previous signatures.
- The host now manages a shared event loop for all components, improving coordination between components.
- First-class constructs like stream<T> and future<T> are added to the canonical ABI, enabling efficient async operations.
- Changes from WASI 0.2 to 0.3 are mostly mechanical, improving ergonomics and solving issues like stream status problems.
- Language bindings, such as for Rust, Go, Python, JavaScript, C#, and C, are being updated to leverage native async support.
- The wasi:http interface has been reorganized with new worlds for service and middleware, enabling service chaining for microservices.
- WASI 0.3 has been ratified by the WASI Subgroup, ensuring stability for future programs.
- Support for WASI 0.3 is available in tools like Wasmtime and jco, with guest toolchains soon to follow.