Repository navigation
Releases
dev
wasi-http: expose `http::Extensions` on p3 `Request` and `Response` (…
v51.0.0-rc.1: Release Wasmtime 51.0.0-rc.1 (#15155)
51.0.0
Unreleased.
Added
Changed
v50.0.1: Release Wasmtime 50.0.1 (#15061)
50.0.1
Released 2026-10-29.
Fixed
-
wasi-sockets: UDP
connectonly required the address to be permitted for
sending or receiving, allowing guests to send datagrams to addresses denied
forUdpSend.
GHSA-hmmr-87qq-258j -
Cross-engine type confusion with host-created struct-types-with-supertypes
has been fixed.
GHSA-qw58-7h65-crq2 -
Panic with typed functions with
i31ornullrefarguments has been fixed.
GHSA-3982-jqvv-277m -
Unchecked memory usage in transferring borrowed resources between components
has been fixed.
GHSA-6fr9-xmw9-5352 -
Fixed a possibility of content-length being invalid or not matching body
length in wasi-http p2.
GHSA-h4wp-g4x3-7398
v49.0.5: Release Wasmtime 49.0.5 (#15062)
49.0.5
Released 2026-10-29.
Fixed
-
wasi-sockets: UDP
connectonly required the address to be permitted for
sending or receiving, allowing guests to send datagrams to addresses denied
forUdpSend.
GHSA-hmmr-87qq-258j -
Cross-engine type confusion with host-created struct-types-with-supertypes
has been fixed.
GHSA-qw58-7h65-crq2 -
Panic with typed functions with
i31ornullrefarguments has been fixed.
GHSA-3982-jqvv-277m -
Unchecked memory usage in transferring borrowed resources between components
has been fixed.
GHSA-6fr9-xmw9-5352 -
Fixed a possibility of content-length being invalid or not matching body
length in wasi-http p2.
GHSA-h4wp-g4x3-7398
v48.0.8: Release Wasmtime 48.0.8 (#15071)
48.0.8
Fixed 2026-10-29.
Fixed
-
wasi-sockets: UDP
connectonly required the address to be permitted for
sending or receiving, allowing guests to send datagrams to addresses denied
forUdpSend.
GHSA-hmmr-87qq-258j -
Cross-engine type confusion with host-created struct-types-with-supertypes
has been fixed.
GHSA-qw58-7h65-crq2 -
Panic with typed functions with
i31ornullrefarguments has been fixed.
GHSA-3982-jqvv-277m -
Unchecked memory usage in transferring borrowed resources between components
has been fixed.
GHSA-6fr9-xmw9-5352 -
Fixed a possibility of content-length being invalid or not matching body
length in wasi-http p2.
GHSA-h4wp-g4x3-7398 -
Compiling a module with more than ~32k data segments with copy-on-write
memory initialization disabled no longer panics withMemFlagsSetOverflow.
#15050
v36.0.20: Release Wasmtime 36.0.20 (#15064)
36.0.20
Released 2026-10-29.
Fixed
-
Unchecked memory usage in transferring borrowed resources between components
has been fixed.
GHSA-6fr9-xmw9-5352 -
Fixed a possibility of content-length being invalid or not matching body
length in wasi-http p2.
GHSA-h4wp-g4x3-7398
v50.0.0: Release Wasmtime 50.0.0 (#14877)
50.0.0
Released 2026-10-20.
Added
-
Wasmtime now supports the WebAssembly compact imports proposal, disabled by
default, viaConfig::wasm_compact_imports.
#14335 -
The Wasmtime CLI now has options to configure unsafe intrinsics and
compile-time builtins.
#14279 -
The Wasmtime CLI and C API can now enable the component model's canonical
names and accessors features.
#14344
#14497 -
A new
Store::gc_heap_growmethod can be used to manually grow the GC heap
of a store.
#14341 -
A new
ResourceAny::resource_drop_concurrentmethod can be used to drop a
guest resource with only anAccessor.
#14362 -
A new
Engine::release_idle_pool_memorymethod can be used to release memory
kept resident by the pooling allocator for idle slots.
#14419
#14507 -
A new off-by-default
task-group-hookfeature enables embedders to associate
guest-to-host calls with their corresponding host-to-guest calls when using
component-model-async.
#14416 -
The
wasmtime-wasiandwasmtime-wasi-httpcrates now support "named
imports", theimplementsfield of the component model.
#14275 -
The
wasmtime explorecommand now supports components and has resizable
panes.
#14426
#14427
#14458 -
The debugger now exposes shared memories to gdbstub.
#14087 -
Winch now supports tail calls on x86_64 and AArch64.
#14349 -
Cranelift has initial support for some x86_64 APX instructions.
#13916 -
The
wasmtime servecommand can now inherit listening sockets from a service
manager (e.g. systemd socket units) with a new--systemd-listenfdoption,
can serve on Unix sockets, and can automatically exit when idle with a new
--idle-process-timeoutoption.
#14294
#14320
#14392
Changed
-
Epoch deadline and call-hook callbacks now receive a
StoreHookState
instead of aStoreContextMut, which only allows access to theTin a
Store<T>.
#14386 -
The
wasmtimeCLI no longer enables WASIp0 (wasi_unstable) by default. It
can be enabled with-Spreview0.
#14479 -
Winch no longer enables the GC types, exceptions, or tail-call proposals by
default as support for these is not yet Tier 1.
#14449
#14502 -
Accessor::spawnnow takes an async closure instead of anAccessorTask.
#14376 -
Component-model-async has been updated to the latest specification: the
cancellableimmediate has been removed from intrinsics,subtask.cancel
semantics have been refined,task.cancelnow traps before the cancel event
is delivered, and use of stream/future handles after the other end has been
dropped now traps.
#14244
#14340
#14342
#14378
#14382 -
Component-model-async now periodically yields during concurrent work to avoid
starving other host tasks.
#14460 -
The performance of async guest-to-host calls in component-model-async has
been improved by lazily creating host tasks, and sync-to-sync adapters no
longer need to call{enter,exit}-sync-callin many cases.
#14350
#14270 -
Wasmtime now drops cached compiler contexts between compiling
modules/components, reducing sustained memory usage.
#14314 -
Cranelift's alias analysis is faster and more precise, and GC struct fields,
array elements, and GC header fields now all have their own alias regions.
#14290
#14425
#14351
#14353 -
Wasmtime now uses bulk libunwind section registration when available.
#14304 -
Fuel is now charged for more host allocations made with
Val.
#14415 -
Default
wasi:httphooks now classify connection and TLS errors in more
detail.
#14501 -
wasi:httpnow always accepts an empty path-with-query.
#14446 -
The CLI now rejects zero for the
--http-outgoing-body-*options.
#14448 -
Work continues on implementing the stack-switching proposal.
#14140
#14369
#14398
#14441 -
Wasmtime now requires Rust 1.97.0 to compile.
#14466 -
The pooling allocator now scans further than a fixed set of region and
additionally correctly resets pages that have been paged out.
#14357
Fixed
-
Converting a borrowed
Resource<T>orResourceDynamiccreated with
new_borrowinto aResourceAnyoutside of a component call no longer
panics. The borrow is now lowered into the guest when the call happens, and
ResourceAny::resource_dropis no longer required for such borrows.
#14384 -
Recursive
run_concurrentis now allowed for disparate stores.
#14302 -
Fuel is now correctly saved and restored around
call_refand exception
catches in Cranelift, and buffered fuel charges in a module's start function
are no longer dropped.
#14407
#14391 -
The
check-writebudget is now enforced inwasi:httpoutgoing bodies and
somewasi:iooutput streams.
#14408
#14429
#14505 -
Store::set_epoch_deadlineno longer overflows with very large deltas.
#14513 -
JIT code is now made coherent with the instruction cache correctly on
AArch64.
#14454 -
Native stack-walking on macOS arm64 has been fixed.
#14303 -
A stack overflow translating a variant with a huge number of cases between
components has been fixed.
#14355 -
Resource aliases are now preserved when stubbing unknown imports.
#14396 -
bindgen!now uses fully-qualified paths for prelude types to avoid
collisions with WIT type names.
#14543 -
Validation of
ifwithoutelsein the presence of subtyping has been fixed.
#14334 -
A debug assertion in
ref.testof internalizedexternrefs has been fixed.
#14315 -
Cranelift now allows returns via
xmm1withWindowsFastCallfor
extern "Rust".
#14361 -
cranelift-objectnow sets symbol flags correctly and returns an error,
instead of panicking, for data objects declared with different TLS values.
#14519
#14469 -
Winch now handles unreachable
try_table, emits fuel updates before throwing
exceptions, and preserves typedselectresult types for GC stack maps.
#14379
#14297
[#14455](https://github.com/bytecode...
v49.0.4: Release Wasmtime 49.0.4 (#14816)
49.0.4
Released 2026-10-19.
Fixed
- wasi-http: Guests can add conflicting content lengths to messages
GHSA-r8xh-cgf7-392j - wasi-http p3: forwarded trailers aren't checked against
is_forbidden_headerhook
GHSA-jxcf-8qw5-5c33 - wasi-http p3: Guests can set incorrect content-length for spliced response bodies
GHSA-9prg-84vf-g5fc - Cranelift backend on aarch64 can jump to incorrect target on large Wasm
br_tableinstruction
GHSA-mghf-wjfp-p5xm - Update rustls to 0.23.46
#14767 - Panic lowering a host-created component model stream into a guest that expects a different payload type.
GHSA-9pvw-hwfg-92h5
v48.0.7: Release Wasmtime 48.0.7 (#14817)
48.0.7
Released 2026-10-19.
Fixed
- wasi-http: Guests can add conflicting content lengths to messages
GHSA-r8xh-cgf7-392j - wasi-http p3: forwarded trailers aren't checked against
is_forbidden_headerhook
GHSA-jxcf-8qw5-5c33 - wasi-http p3: Guests can set incorrect content-length for spliced response bodies
GHSA-9prg-84vf-g5fc - Cranelift backend on aarch64 can jump to incorrect target on large Wasm
br_tableinstruction
GHSA-mghf-wjfp-p5xm - Update rustls to 0.23.46
#14768 - Panic lowering a host-created component model stream into a guest that expects a different payload type.
GHSA-9pvw-hwfg-92h5
v36.0.19: Release Wasmtime 36.0.19 (#14815)
36.0.19
Released 2026-10-19.
Fixed
- wasi-http: Guests can add conflicting content lengths to messages
GHSA-r8xh-cgf7-392j - Cranelift backend on aarch64 can jump to incorrect target on large Wasm
br_tableinstruction
GHSA-mghf-wjfp-p5xm - Bit-packing in Cranelift compiler causes silent overflow and miscompilation
GHSA-897f-g5gm-fmxm