Wasmtime 27.0: Complete Wasm GC support, PyTorch backend, and more
This month’s v27.0 release of Wasmtime—the fast, secure, and standards-compliant WebAssembly (Wasm) runtime—includes enhancements such as completed support for the new Wasm garbage collection proposal, a PyTorch backend for wasi-nn
, link-time feature gate configuration for unstable WIT APIs, and more.
- Wasmtime now fully supports the WebAssembly Garbage Collection (GC) proposal. In addition to the GC, Wasmtime now includes a “null” collector that bump-allocates until the heap is exhausted.
- A PyTorch backend has been added for
wasi-nn
, gated behind awasi-nn
feature flag:--features pytorch
- Wasmtime’s in-repo documentation has been updated to track the implementation of various Wasm proposals in Wasmtime.
What’s new in Wasmtime v27.0
There are a variety of enhancements and fixes in Wasmtime 27.0. You can find the release notes here.
Added
- Support for the Wasm GC proposal is now complete. A new “null” GC has also been added, which does not ever collect garbage. #9389 #9392 #9401 #9435 #9437 #9438 #9446 #9448 #9454 #9455 #9484
- Unstable WIT APIs now have feature gates configured at link-time and new
-Scli-exit-with-code
/-Snetwork-error-code
options are available as well. #9381 #9276 - Initial support for the wide-arithmetic proposal has been implemented. #9403 #9500
- Guests on s390x now implement the “inline probestacks” for Cranelift to more robustly detect stack overflows. #9423
- Missing CLI options for the pooling allocator have been filled out. #9447
- Cranelift now supports 128-bit atomics on x64. #9459
- A new Cargo feature has been added to the
wasmtime
crate to reexport thewasmparser
dependency. #9485 - Support for a new PyTorch backend for wasi-nn has been added. #9234
- A new
-Cnative-unwind-info
flag has been added to thewasmtime
CLI. #9494 - Initial support for illumos has been added. #9535
- A new
Caller::get_module_export
API has been added. #9525 - Basic debug logging has been added to the debug info transformatino. #9526
Changed
- The WASI WITs vendored are now updated to 0.2.2. #9395
- The
wasmtime-wasi-runtime-config
is now namedwasmtime-wasi-config
. #9404 - Documentation on the implementation status of WebAssembly proposals has been updated. #9434
- Wasmtime’s WASI documentation has been overhauled. #9471
- The
wasi_config_preopen_dir
in Wasmtime’s C API now takes file/directory permissions. #9477 - Detection of libunwind vs libgcc is now done with weak symbols. #9479
- Winch has improved detection of unsupported features in a
Config
. #9490 - Winch now supports fuel-based interruption. #9472
- Wasmtime’s minimum supported Rust version is now 1.80. #9496
- ISLE no longer supports scheme-style booleans. #9522
- ISLE now supports block comments. #9529
- Support for shared memory in the C API has been added. #9507
- Configuration options for guard size regions have been merged into a single option. #9528
Fixed
- Double-registration of debug information for modules in components has been fixed. #9470
- A panic on AArch64 for vector constants has been fixed. #9482
- A miscompile with
sdiv
andINT_MIN / -1
has been fixed on aarch64. #9541
Get involved
Thanks to Dan Gohman for his work on this release. If you’d like to get involved with Wasmtime, join our Zulip chat and check out the Wasmtime contributors’ guide for more information.