Wasmtime is a fast, secure, and standards-compliant WebAssembly runtime. The latest v26.0 release includes enhancements such as implementation of the “table64” extension, a new wasmtime completion subcommand, ARM64 Windows support, and more.

  • The memory64 proposal to WebAssembly was recently updated to include 64-bit tables in addition to 64-bit memories. With this release, Wasmtime supports the extension.
  • It’s now possible to compile Wasm modules via the Pulley interpreter with wasmtime compile.
  • The wasmtime completion subcommand can be used to generate shell completions for the installed version of Wasmtime.
  • Wasmtime now fully supports ARM64 Windows with a release binary available.

What’s new in Wasmtime v26.0

Wasmtime v26.0 includes a variety of enhancements and fixes. The release notes are available here.

Added

  • The “table64” extension of the memory64 proposals to WebAssembly has been implemented. #9206
  • Initial support has been added for compiling WebAssembly modules with Pulley, Wasmtime’s interpreter. Note that the interpreter is not feature complete yet. #9240
  • Wasmtime can now execute code without relying on host-based signal handlers. #9230
  • Work has continued on implementing the GC proposals in Wasmtime. #9246 #9244 #9271 #9275 #9278 #9282 #9285 #9326 #9341 #9358
  • Support for ARM64 Windows has been finished with support for unwinding. Release binaries are now also available for this platform. #9266 #9283
  • The bindgen! macro now supports multiple paths to load WIT from. #9288
  • A new -W async-stack-size=N argument has been added to the CLI. #9302
  • A new wasmtime completion subcommand can be used to generate a completion script for the Wasmtime CLI. #9312
  • Components now support initialize_copy_on_write_image like core modules. #9357
  • Initial support for the ISLE verifier Crocus has landed. #9178

Changed

  • Wasmtime now requires Rust 1.79.0 to compile. #9202
  • The future-trailers.get in wasi-http now returns none when trailers are absent. #9208
  • The Cranelift instructions iadd_cin and isub_bin were removed. Theisub_borrow and iadd_carry instructions were renamed to {u,s}add_carry and {u,s}sub_borrow. #9199
  • Winch now supports multi-value results on AArch64. #9218
  • Some issues related to shutdown have been fixed with WASI sockets. #9225
  • Cranelift now has a Cargo feature to enable support for all native ISAs and not Pulley. #9237
  • Cranelift support for StructArgument in the arm64, riscv64, and s390x backends has been removed. #9258
  • The pooling allocator no longer limits instances/memories/tables by default. #9257
  • Stack overflow on an async stack will now print a message that this happened. #9304
  • Cranelift’s cranelift-wasm crate has been removed and folded directly into wasmtime-cranelift. #9313
  • Cranelift’s TrapCode type is now represented with a single byte. #9338

Fixed

  • Stack slots in Cranelift are now aligned from the start instead of the end. #9279
  • The WASIp1 adapter now correctly handles allocations where the initial alignment consumes the entire allocation. #9356

Get involved

Thanks to Alex Crichton and Nick Fitzgerald for their work on this release. Interested in getting involved with Wasmtime? Join us on our Zulip chat and read the Wasmtime contributors’ guide for more information.