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.

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 the wasmparser 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 the wasmtime 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 named wasmtime-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 and INT_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.