35.0.0
Released 2025-07-22.
Added
-
A new
InputFile
type has been added for specifying stdin as a file in WASI. #10968 -
Conditional branches to unconditional traps are now translated to conditional traps during legalization. #10988
-
The
TE
HTTP header can now be specified by guests. #11002 -
Winch on AArch64 should now pass all WebAssembly MVP tests. Note that it is still not yet Tier 1 at this time, however. #10829 #11013 #11031 #11051
-
The x64 backend now has lowering rules for
{add,sub,or,and} mem, imm
#11043 -
Initial support for WASIp2 in the C API has started to land. #11055 #11172
-
Initial support for GC support in the component model has started to land (note that it is not finished yet). #10967 #11020
-
The
wasmtime-wasi-nn
crate now has a feature to use a custom ONNX runtime. #11060 -
Cranelift now optimizes division-by-constant operations to no longer use division. #11129
-
A
native-tls
backend has been added for the wasi-tls implementation. #11064
Changed
-
Many more instructions for the x64 backend in Cranelift were migrated to the new assembler. #10927 #10928 #10918 #10946 #10954 #10958 #10971 #10942 #10975 #11017 #10898 #10836 ... (and more)
-
Wasmtime internally uses
Pin
for VM data structures to make the internal implementations more sound to use. This has no effect on the public API of Wasmtime. #10934 #10937 #10943 #10959 #11042 -
Fused adapters between components now transfer the
enum
component model type more efficiently. #10939 -
Filenames of
--emit-clif
now match the symbol names found in*.cwasm
artifacts and include the function name as well. #10947 #11040 -
Wasmtime-internal crates are now all named
wasmtime-internal-*
to even further discourage their use. #10963 -
Codegen of conditional traps with float compares has been improved. #10966
-
More patterns are now optimized in ISLE mid-end rules. #10978 #10979 #11173
-
Winch's support for constants/scratch registers has been improved internally. #10986 #10998
-
The C API artifacts on Windows are now produced with Clang instead of
cl.exe
. #10890 -
WebAssembly operand types are now taken into account during translation to optimize codegen better in the face of subtyping. #11030
-
The behavior of
blocking-write-and-flush
has been updated during flushing whenclosed
is found. #11018 -
WASI WITs have been updated to 0.2.6. #11049
-
OpenVINO has been updated to v2025.1. #11054
-
The size of the
wasmtime.addrmap
section in*.cwasm
artifacts has been shrunk slightly. #11126 -
Authorities in
wasmtime-wasi-http
can now contain the:
character. #11145 -
Wasmtime now requires Rust 1.86 to compile. #11142
-
Wasmtime's DRC collector has been optimized and has a new more efficient means of managing the set of over-approximated roots on the stack. #11144 #11148 #11167 #11168 #11169 #11175
-
The
ComponentType
trait in Wasmtime now requires theSend
andSync
bounds for all implementors. #11160 -
The
V128
type is now usable on platforms other than aarch64 and x86_64. #11165 -
Wasmtime's policy on
unsafe
code and guidelines has been added. #11177 -
The
std
crate will no longer implicitly be used oncfg(unix)
andcfg(windows)
targets when thestd
Cargo feature is disabled. This means that these platforms now requirestd
to be enabled to use the platform-specific implementation of linear memory, for example. #11152
Fixed
-
A panic when optimizing
icmp
with vectors has been fixed. #10948 -
A panic when lowering
scalar_to_vector
withi16x8
types has been fixed. #10949 -
The vector state register is now considered clobbered by calls on riscv64 to ensure it's updated across calls. #11048
-
An instance of
gdb
crashing on DWARF emitted by Wasmtime has been fixed. #11077 -
Fix a panic in the host caused by preview1 guests using
fd_renumber
. CVE-2025-53901. -
Fix a panic in the preview1 adapter caused by guests using
fd_renumber
. #11277