Skip to content

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-unknown Rust target (panic=abort by default; panic=unwind newly 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 / throw instructions, 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_all blocks run destructors and rethrow propagates — 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

Last updated · 510 distilled / 1,221 read