WASI (WebAssembly System Interface) — standard API для WebAssembly вне браузера. Даёт WASM access to filesystem, network, env vars в sandboxed way. Enables server-side WASM: Fastly Compute@Edge, Fermyon Spin, Docker WASM containers, Envoy WASM filters. Сompetes с containers для lightweight serverless. Runtimes: Wasmtime (Mozilla), WasmEdge, WasmCloud.
Ниже: подробности, пример, смежные термины, FAQ.
// Rust → WASI
// Cargo.toml
[dependencies]
wasi = "0.13"
// main.rs
use std::fs;
fn main() {
let content = fs::read_to_string("/data/input.txt").unwrap();
println!("{}", content);
}
// Build: cargo build --target wasm32-wasi
// Run: wasmtime --dir=/host/data main.wasmWASI: much faster start, smaller (KB vs MB), language-neutral. Containers: больше compatibility с existing software. Для serverless/edge — WASI win.
Preview 2 released 2024 stable. Fastly, Cloudflare Workers используют внутри. Для mainstream — 2026+.
Не замена, а complement. Containers сохранятся для legacy apps. Новые edge functions, plugins, serverless — WASI.