Sha256: ad6f6e3ba5fdb614cd1f38071f0acf4588ad3847fc509cb5284133db0a648553

Contents?: true

Size: 1.33 KB

Versions: 8

Compression:

Stored size: 1.33 KB

Contents

//! One goal of `wasi-common` is for multiple WASI snapshots to provide an
//! interface to the same underlying `crate::WasiCtx`. This provides us a path
//! to evolve WASI by allowing the same WASI Command to import functions from
//! different snapshots - e.g. the user could use Rust's `std` which imports
//! snapshot 1, but also depend directly on the `wasi` crate which imports
//! some future snapshot 2. Right now, this amounts to supporting snapshot 1
//! and "snapshot 0" aka wasi_unstable at once.
//!
//! The architectural rules for snapshots are:
//!
//! * Snapshots are arranged into modules under `crate::snapshots::`.
//! * Each snapshot should invoke `wiggle::from_witx!` with `ctx:
//!   crate::WasiCtx` in its module, and impl all of the required traits.
//! * Snapshots can be implemented in terms of other snapshots. For example,
//!   snapshot 0 is mostly implemented by calling the snapshot 1 implementation,
//!   and converting its own types back and forth with the snapshot 1 types. In a
//!   few cases, that is not feasible, so snapshot 0 carries its own
//!   implementations in terms of the `WasiFile` and `WasiSched` traits.
//! * Snapshots can be implemented in terms of the `Wasi*` traits given by
//!   `WasiCtx`. No further downcasting via the `as_any` escape hatch is
//!   permitted.

pub mod preview_0;
pub mod preview_1;

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
wasmtime-30.0.2 ./ext/cargo-vendor/wasi-common-30.0.2/src/snapshots/mod.rs
wasmtime-29.0.0 ./ext/cargo-vendor/wasi-common-29.0.0/src/snapshots/mod.rs
wasmtime-28.0.0 ./ext/cargo-vendor/wasi-common-28.0.0/src/snapshots/mod.rs
wasmtime-27.0.0 ./ext/cargo-vendor/wasi-common-27.0.0/src/snapshots/mod.rs
wasmtime-26.0.0 ./ext/cargo-vendor/wasi-common-26.0.0/src/snapshots/mod.rs
wasmtime-25.0.2 ./ext/cargo-vendor/wasi-common-25.0.2/src/snapshots/mod.rs
wasmtime-25.0.1 ./ext/cargo-vendor/wasi-common-25.0.1/src/snapshots/mod.rs
wasmtime-25.0.0 ./ext/cargo-vendor/wasi-common-25.0.0/src/snapshots/mod.rs