Skip to content

Releases

dev

dev Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 28 Sep 20:31
1d10469
wasi-http: expose `http::Extensions` on p3 `Request` and `Response` (…

v51.0.0-rc.1: Release Wasmtime 51.0.0-rc.1 (#15155)

Choose a tag to compare

@github-actions github-actions released this 05 Nov 01:26
Immutable release. Only release title and notes can be modified.
62e36a9

51.0.0

Unreleased.

Added

Changed

v50.0.1: Release Wasmtime 50.0.1 (#15061)

Choose a tag to compare

@github-actions github-actions released this 29 Oct 17:54
Immutable release. Only release title and notes can be modified.
c307ec8

50.0.1

Released 2026-10-29.

Fixed

  • wasi-sockets: UDP connect only required the address to be permitted for
    sending or receiving, allowing guests to send datagrams to addresses denied
    for UdpSend.
    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 i31 or nullref arguments 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)

Choose a tag to compare

@github-actions github-actions released this 29 Oct 18:17
Immutable release. Only release title and notes can be modified.
805a0f1

49.0.5

Released 2026-10-29.

Fixed

  • wasi-sockets: UDP connect only required the address to be permitted for
    sending or receiving, allowing guests to send datagrams to addresses denied
    for UdpSend.
    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 i31 or nullref arguments 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)

Choose a tag to compare

@github-actions github-actions released this 29 Oct 18:40
Immutable release. Only release title and notes can be modified.
7b6c29e

48.0.8

Fixed 2026-10-29.

Fixed

  • wasi-sockets: UDP connect only required the address to be permitted for
    sending or receiving, allowing guests to send datagrams to addresses denied
    for UdpSend.
    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 i31 or nullref arguments 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 with MemFlagsSetOverflow.
    #15050

v36.0.20: Release Wasmtime 36.0.20 (#15064)

Choose a tag to compare

@github-actions github-actions released this 29 Oct 17:48
Immutable release. Only release title and notes can be modified.
b265f78

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)

Choose a tag to compare

@github-actions github-actions released this 20 Oct 16:22
Immutable release. Only release title and notes can be modified.
ebe5e8d

50.0.0

Released 2026-10-20.

Added

  • Wasmtime now supports the WebAssembly compact imports proposal, disabled by
    default, via Config::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_grow method can be used to manually grow the GC heap
    of a store.
    #14341

  • A new ResourceAny::resource_drop_concurrent method can be used to drop a
    guest resource with only an Accessor.
    #14362

  • A new Engine::release_idle_pool_memory method can be used to release memory
    kept resident by the pooling allocator for idle slots.
    #14419
    #14507

  • A new off-by-default task-group-hook feature enables embedders to associate
    guest-to-host calls with their corresponding host-to-guest calls when using
    component-model-async.
    #14416

  • The wasmtime-wasi and wasmtime-wasi-http crates now support "named
    imports", the implements field of the component model.
    #14275

  • The wasmtime explore command 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 serve command can now inherit listening sockets from a service
    manager (e.g. systemd socket units) with a new --systemd-listenfd option,
    can serve on Unix sockets, and can automatically exit when idle with a new
    --idle-process-timeout option.
    #14294
    #14320
    #14392

Changed

  • Epoch deadline and call-hook callbacks now receive a StoreHookState
    instead of a StoreContextMut, which only allows access to the T in a
    Store<T>.
    #14386

  • The wasmtime CLI 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::spawn now takes an async closure instead of an AccessorTask.
    #14376

  • Component-model-async has been updated to the latest specification: the
    cancellable immediate has been removed from intrinsics, subtask.cancel
    semantics have been refined, task.cancel now 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-call in 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:http hooks now classify connection and TLS errors in more
    detail.
    #14501

  • wasi:http now 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> or ResourceDynamic created with
    new_borrow into a ResourceAny outside of a component call no longer
    panics. The borrow is now lowered into the guest when the call happens, and
    ResourceAny::resource_drop is no longer required for such borrows.
    #14384

  • Recursive run_concurrent is now allowed for disparate stores.
    #14302

  • Fuel is now correctly saved and restored around call_ref and exception
    catches in Cranelift, and buffered fuel charges in a module's start function
    are no longer dropped.
    #14407
    #14391

  • The check-write budget is now enforced in wasi:http outgoing bodies and
    some wasi:io output streams.
    #14408
    #14429
    #14505

  • Store::set_epoch_deadline no 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 if without else in the presence of subtyping has been fixed.
    #14334

  • A debug assertion in ref.test of internalized externrefs has been fixed.
    #14315

  • Cranelift now allows returns via xmm1 with WindowsFastCall for
    extern "Rust".
    #14361

  • cranelift-object now 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 typed select result types for GC stack maps.
    #14379
    #14297
    [#14455](https://github.com/bytecode...

Read more

v49.0.4: Release Wasmtime 49.0.4 (#14816)

Choose a tag to compare

@github-actions github-actions released this 19 Oct 19:20
Immutable release. Only release title and notes can be modified.
2c29702

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_header hook
    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_table instruction
    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)

Choose a tag to compare

@github-actions github-actions released this 19 Oct 19:20
Immutable release. Only release title and notes can be modified.
c6846e1

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_header hook
    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_table instruction
    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)

Choose a tag to compare

@github-actions github-actions released this 19 Oct 19:09
Immutable release. Only release title and notes can be modified.
0d6b8ea

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_table instruction
    GHSA-mghf-wjfp-p5xm
  • Bit-packing in Cranelift compiler causes silent overflow and miscompilation
    GHSA-897f-g5gm-fmxm