Wasmtime 47: GC and Exceptions Enabled by Default
Original: GC and Exceptions in Wasmtime
Why This Matters
Enabling GC and exceptions by default expands the range of languages that can efficiently target WebAssembly runtimes.
Bytecode Alliance released Wasmtime 47 on July 20, 2026, enabling the Wasm GC and exceptions proposals by default. This milestone, the result of years of engineering, expands WebAssembly language support and improves runtime performance for high-level languages.
Wasmtime 47, released by the Bytecode Alliance on July 20, 2026, enables two major WebAssembly proposals by default: Wasm GC and Wasm Exceptions. Previously, high-level languages with garbage-collected object models had to bundle their own GC inside .wasm binaries, inflating binary sizes and limiting collector techniques. The Wasm GC proposal lets programs define struct and array types with subtyping, delegating lifetime management entirely to the runtime. This eliminates embedded collectors and allows more languages to target WebAssembly efficiently. The Wasm Exceptions proposal similarly removes the need for custom calling conventions to propagate exceptions, replacing them with native throw/try/catch constructs. The runtime can then use classic stack-unwinding, adding zero overhead to normal return paths and reducing binary size. Wasmtime's GC implementation uses a Cheney-style semi-space copying collector built on top of WebAssembly linear memories for sandboxing. GC references are 32-bit indices rather than native pointers, and allocation uses a simple bump-pointer scheme with no read or write barriers required. According to lead engineer Nick Fitzgerald, this release represents the culmination of years of engineering effort and is intended to bring more programming languages to WebAssembly and any platform where Wasmtime runs.