SYSTEM Cited by 1 source
WebAssembly¶
WebAssembly (Wasm) is a portable binary-instruction format designed as a compile target for languages like C, C++, Rust, Zig, Go, and others — embedded inside web browsers, runtimes like Node.js and Deno, and serverless platforms like Cloudflare Workers via the V8 engine (and via workerd in Cloudflare's case).
Role on this wiki¶
Canonical system for Rust-on-Wasm reliability (Cloudflare's 2026-04-22 post) and for the Wasm Exception Handling proposal's production relevance. The post covers:
- Compile targets — the
wasm32-unknown-unknownRust target (panic=abortby default;panic=unwindnewly supported via Cloudflare's wasm-bindgen work). - Sandbox model — each Wasm instance is a sandbox with linear memory, imported/exported functions, and no ambient authority; the Rust↔JS boundary is a real trust boundary. When the instance is corrupted, any request served by it can produce undefined behaviour (concepts/sandbox-poisoning).
- Exception handling — historically Wasm had no
unwinding; panics and C++ exceptions terminated the
instance. The WebAssembly Exception Handling proposal
fixes this with
try/catch/throwinstructions, gaining wide engine support in 2023. "Legacy exception handling" (initial) vs "modern exception handling with exnref" (final) are the two variants; Rust Wasm targets still default to legacy. - Stack unwinding on Wasm — with Exception Handling,
catch_allblocks run destructors andrethrowpropagates — enabling native-Rust concepts/stack-unwinding semantics on Wasm.
Engine support for modern EH (as of 2026-04-22 post)¶
| Runtime | Version | Released |
|---|---|---|
| V8 | 13.8.1 | 2025-04-28 |
| workerd | v1.20250620.0 | 2025-06-19 |
| Chrome | 138 | 2025-06-28 |
| Firefox | 131 | 2024-10-01 |
| Safari | 18.4 | 2025-03-31 |
| Node.js | 25.0.0 | 2025-10-15 |
Node.js 24 LTS was the constraint — its release schedule would have left the ecosystem on legacy EH until April 2028 without action. Cloudflare backported modern EH to Node.js 24 and 22 so modern EH can become the default target "next year."
Seen in¶
- sources/2026-04-22-cloudflare-making-rust-workers-reliable-panic-and-abort-recovery-in-wasm-bindgen — canonical wiki instance. Deep dive on the Wasm instance as a unit of failure (sandbox poisoning), the EH proposal as the primitive enabling Rust panic recovery on Wasm, and Cloudflare's Node.js 22/24 backport to keep wasm-bindgen's default target viable.
Related¶
- systems/wasm-bindgen — the Rust↔JS binding generator exercising Wasm EH in the Rust ecosystem.
- systems/workers-rs — Rust SDK targeting Wasm.
- systems/cloudflare-workers — Wasm runtime at edge scale.
- systems/workerd — open-source Wasm runtime behind Workers.
- systems/v8-javascript-engine / systems/nodejs — major Wasm EH consumers.
- concepts/webassembly-exception-handling — the proposal.
- concepts/panic-unwind / concepts/panic-abort — the Rust-panic-strategy axis that rides on Wasm EH.
- concepts/sandbox-poisoning — the failure class EH + abort recovery now contains.
- concepts/stack-unwinding — the runtime primitive Wasm EH enables on this substrate.
- concepts/capability-based-sandbox — adjacent sandbox discipline at the instance tier.