#wasi #wasmtime #write #stream #traits #read-write

no-std wasmtime-wasi-io

wasi-io common traits to be shared among other wasi implementations

1 stable release

new 30.0.0 Feb 20, 2025

#1405 in WebAssembly


Used in 8 crates (via wasmtime-wasi)

Apache-2.0 WITH LLVM-exception

3MB
47K SLoC

Wasmtime's wasi-io Implementation

This crate provides a Wasmtime host implementation of the WASI 0.2 (aka WASIp2 aka Preview 2) wasi-io package. The host implementation is abstract: it is exposed as a set of traits which other crates provide impls of.

The wasi-io package is the foundation which defines how WASI programs interact with the scheduler. It provides the pollable, input-stream, and output-stream Component Model resources, which other packages (including wasi-filesystem, wasi-sockets, wasi-cli, and wasi-http) expose as the standard way to wait for readiness, and asynchronously read and write to streams.

This crate is designed to have no unnecessary dependencies and, in particular, to be #![no_std]. For an example no_std embedding, see /examples/min-platform at the root of the wasmtime repo.

Dependencies

~22–33MB
~644K SLoC