Skip to main content
Account

WebAssembly & WASI

Learn how WebAssembly & WASI provide a sandboxed, portable runtime beyond the browser, from capability-based security to the Component Model and WIT.

Status
Stable
Category
Wasm
Subcategory
Runtime
License
Apache-2.0 OR MIT
Technology matrix Advocate Championing See the matrix

WebAssembly (Wasm) is a portable binary instruction format for a stack-based virtual machine. It was originally designed so browsers could run languages other than JavaScript at near-native speed, and is a W3C standard shipped in every major browser. Code written in C, C++, Rust, Go, Zig, AssemblyScript, and increasingly other languages can be compiled to a .wasm module and executed inside a sandboxed VM with explicit, capability-based access to the outside world.

That sandboxing model is what makes Wasm interesting outside the browser. A module has no ambient access to the filesystem, network, or clock; the host must explicitly grant each capability. WASI, the WebAssembly System Interface, standardizes those host APIs so the same module can run on Wasmtime, Wasmer, WasmEdge, or a browser polyfill. The Component Model builds on top of WASI with typed interfaces (WIT), so components written in different source languages can link together without sharing ABIs.

Wasm is now used well beyond the browser: as a plugin format for Envoy and Istio, as a serverless runtime (Fastly Compute, Fermyon Spin, wasmCloud), as an embedded scripting engine inside databases and proxies, and as a secure sandbox for user-provided code.

WebAssembly & WASI recordings

18 recordings, newest first

Runtime

Email signup loads here. You can also manage email preferences in account settings.

Build WebAssembly & WASI? I'll show you where engineers get stuck with it โ†’ Back free content for the community โ†’