Wasmtime 26.0: 64-bit tables, shell completions, Windows ARM64 support, and more
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
inwasi-http
now returnsnone
when trailers are absent. #9208 - The Cranelift instructions
iadd_cin
andisub_bin
were removed. Theisub_borrow
andiadd_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 intowasmtime-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.