37.0.0
Released 2025-09-20.
Added
-
Wasmtime now fully implements the WebAssembly exception-handling proposal.
Support is still disabled by default but is ready for testing. The proposal
will be enabled by default in a future release of Wasmtime.
#11326 -
An initial implementation of WASIp3 is available for the
0.3.0-rc-2025-08-15
tag made for the WASIp3 release. Note that this is not production ready yet
but is an excellent time to start kicking the tires in preparation for an
upcoming officialy WASIp3 0.3.0 release. Users of the CLI can opt-in with
-Sp3 -Wcomponent-model-async
.
#11406
#11423
#11443 -
Wasmtime has initial support for the Linux
PAGEMAP_SCAN
ioctl which can
greatly improve instantiation throughput in scenarios with a high number of
instantiations and short instance lifetime. This support is disabled by
default but will likely be enabled by default in a future release.
#11372
#11433 -
GC support can now be configured in
Config
and not only through crate
features throughConfig::gc_support
.
#11463 -
Wasmtime now supports reading metrics of the pooling allocator at runtime.
#11490 -
The
ManuallyRooted
type is now replaced withOwnedRooted
which is intended
to make management of GC object lifetimes on the host easier.
#11514 -
Wasmtime's documentation of the C++ embedding API and examples has been
expanded.
#11569 -
Wasmtime's support for the stack-switching WebAssembly proposal continues to
progress on x86_64 Linux.
#11003
Changed
-
The
preview0
andpreview1
modules and features in thewasmtime-wasi
crate are now calledp0
andp1
.
#11380 -
Release artifacts for the C API are now unconditionally built with unwind
tables.
#11383 -
Wasmtime now requires Rust 1.87.0 or later to build.
#11396 -
The component-model-async gated
AbortHandle
is now namedJoinHandle
.
#11414 -
Wasmtime's internal implementation details are now
async
in many more
locations to help ensure the implementation is more sound.
#11411
#11416
#11442
#11444
#11457
#11460
#11461
#11468
#11470
#11481
#11496 -
Component-model-async primitives such as streams, tasks, etc, now use the same
table as resources in a component. This means that guest-visible allocated
indices are updated slightly.
#11374 -
Wasmtime's precompiled binaries available from CI now include the
component-model-async
feature.
#11429 -
C API release artifacts are now built with LTO so they have a smaller size.
#11483 -
Code can no longer be loaded on
x86_64-unknown-none
by default without
opting-in to a contract that either the host is compiled with SSE2 support or
wasm is compiled with enough features that libcalls aren't used.
#11553 -
Host support for component model async futures/streams has been updated to a
new API.
#11515
Fixed
-
GC of dead DWARF has been improved.
#11402 -
Wasm-gc branching instructions now correctly check for fuel.
#11426 -
The
array.new_default
instruction now checks for fuel/epochs in its inner
loop.
#11428 -
The "min" C API artifacts now have correct headers.
#11479 -
GC OOM during const eval no longer panics.
#11557 -
Wasmtime now properly respects a disabled
std
feature even on targets which
havestd
available.
#11568