Skip to content

Releases: bytecodealliance/wasmtime

dev

28 Sep 20:31
f248b5c

Choose a tag to compare

dev Pre-release
Pre-release
Config knobs and validation for record-replay (#12375)

v41.0.1: Release Wasmtime 41.0.1 (#12434)

27 Jan 00:25
Immutable release. Only release title and notes can be modified.
c30fce8

Choose a tag to compare

41.0.1

Released 2026-01-26.

Fixed

  • Fixed a bug in lowering of f64.copysign on x86-64 whereby when combined
    with an f64.load, the resulting machine code could read 16 bytes rather
    than 8 bytes. This could result in a segfault when Wasmtime is configured
    without signals-based traps.

v40.0.3: Release Wasmtime 40.0.3 (#12433)

27 Jan 00:30
Immutable release. Only release title and notes can be modified.
390241f

Choose a tag to compare

40.0.3

Released 2026-01-26.

Fixed

  • Fixed a bug in lowering of f64.copysign on x86-64 whereby when combined
    with an f64.load, the resulting machine code could read 16 bytes rather
    than 8 bytes. This could result in a segfault when Wasmtime is configured
    without signals-based traps.

v36.0.5: Release Wasmtime 36.0.5 (#12432)

26 Jan 23:27
Immutable release. Only release title and notes can be modified.
06ef143

Choose a tag to compare

36.0.5

Released 2026-01-26.

Fixed

  • Fixed a bug in lowering of f64.copysign on x86-64 whereby when combined
    with an f64.load, the resulting machine code could read 16 bytes rather
    than 8 bytes. This could result in a segfault when Wasmtime is configured
    without signals-based traps.

v41.0.0: Release Wasmtime 41.0.0 (#12373)

20 Jan 18:02
Immutable release. Only release title and notes can be modified.
3dda916

Choose a tag to compare

41.0.0

Released 2026-01-20.

Added

  • Support for {Future,Stream}Any in the component model has improved.
    #12142

  • Wasmtime has initial support for breakpoints and single-stepping with the
    debug feature for guest programs.
    #12133

  • Wasmtime has begun adding a new Error type which is similar to
    anyhow::Error but supports gracefully handling OOM. Wasmtime still uses
    anyhow::Error but this will change in the future to wasmtime::Error which
    will be a distinct type.
    #12163

  • An initial top-level crate for async-debugging guest programs has been added.
    #12183

Changed

  • Cranelift now optimizes redundant select + icmp instructions.
    #12135

  • Synchronous component model functions can no longer block before returning.
    This implements a change in the upstream specification to the upcoming async
    support in the component model which places stricter restrictions on
    non-async functions and their ability to perform blocking operations.
    #12043

  • Frame iteration in debug mode now visits all activations which enables
    seeing all frames from recursive wasm calls.
    #12176

  • Wasmtime now requires Rust 1.90.0 or later.
    #12167

  • Intra-component stream/future reads/writes are now allowed for simple data
    types.
    #12181

  • The POLL callback code has been removed from the canonical ABI for async
    functions and the waitable-set.poll function no longer yields.
    #12182

  • Guest-to-guest adapters injected by Wasmtime now have improved trapping error
    messages.
    #12215

Fixed

  • #[derive(Lift)] for enums with exactly 256 cases has been fixed.
    #12140

  • With component-model-async support recursively calling a guest from a host
    function has now been fixed.
    #12152

v40.0.2: Release Wasmtime 40.0.2 (#12346)

14 Jan 17:29
Immutable release. Only release title and notes can be modified.
bb9ef67

Choose a tag to compare

40.0.2

Released 2026-01-14.

Fixed

  • A possible stack overflow in the x64 backend with cmp emission has been
    fixed.
    #12333

  • Some ISLE optimization rules which created erroneous IR for vector inputs have
    been fixed.
    #12179
    #12335

  • The x64 lowering of shld has been fixed for some edge caxes.
    #12321

v39.0.2: Release Wasmtime 39.0.2 (#12347)

14 Jan 17:05
Immutable release. Only release title and notes can be modified.
f66a5b6

Choose a tag to compare

39.0.2

Released 2026-01-14.

Fixed

  • A possible stack overflow in the x64 backend with cmp emission has been
    fixed.
    #12333

v36.0.4: Release Wasmtime 36.0.4 (#12348)

14 Jan 17:16
Immutable release. Only release title and notes can be modified.
0489f91

Choose a tag to compare

36.0.4

Released 2026-01-14.

Fixed

  • A possible stack overflow in the x64 backend with cmp emission has been
    fixed.
    #12333

v40.0.1: Release Wasmtime 40.0.1 (#12271)

07 Jan 23:22
Immutable release. Only release title and notes can be modified.
918e5dc

Choose a tag to compare

40.0.1

Released 2026-01-07.

Changed

  • This release is a test of Wasmtime's CI-based crate publishing infrastructure.
    Wasmtime is switching to crates.io-based trusted publishing for this release
    and is testing that everything works.
    #12257

v40.0.0: Release Wasmtime 40.0.0 (#12192)

22 Dec 16:10
Immutable release. Only release title and notes can be modified.
0807b00

Choose a tag to compare

40.0.0

Released 2025-12-20.

Added

  • WASIp3 support for wasi:http now implements Response::from_http to convert
    from standard Rust types to WASI types.
    #12063

  • Cranelift now supports a "patchable" ABI which has a maximum number of
    arguments and clobbers no registers. This is paired as well with a new
    patchable_call instruction which supports being turned into NOPs at runtime.
    #12061
    #12101

Changed

  • Support for the WebAssembly threads proposal is now classified as tier 2 by
    default. Additionally creation of SharedMemory is disabled by deafult behind
    a new config knob/CLI flag.
    #12036

  • A variety of peephole-style optimizations have been added to Cranelift's
    optimization passes.
    #11994
    #11995
    #11996
    #11997
    #11998
    #11999
    #12000
    #12006
    #12008

  • Component host functions have been slightly optimized to remove an Arc clone
    and reduce contention.
    #11987

  • Support for component-model-async has been updated to account for the
    changes specified in WebAssembly/component-model#578.
    This means that historical binaries using WASIp3, for example, are no longer
    valid. Recompilation of historical components will be required and
    source-level changes may also be required in some circumstances.
    #12031
    #12043

  • The UnsyncBoxBody type is now used everywhere in wasmtime-wasi-http instead
    of just in the wasip3 support.
    #12060

  • Initial groundwork for gracefully handling OOM (e.g. returning an error
    instead of aborting) has been added.
    #12070
    #12089

  • Wasmtime will create a private copy of code memory when guest debugging is
    enabled to assist with modifying code when adding/removing breakpoints.
    #12051

  • The ResourceTable type will no longer use Tombstone when compiled in debug
    mode.
    #12114

  • Intra-component future/stream reads/writes will now trap instead of
    accidentally being allowed.
    #12117

  • Cranelift optimization rules have been tweaked after it was discovered that
    they could pessimize code containing long chains of computations.
    #12116

Fixed

  • Compilation of i8x16.popcnt has been fixed in Winch for some potential
    inputs.
    #12010

  • A panic in Instance::prepare_call for some component-model-async situations
    has been fixed.
    #12054

  • An off-by-one error for lifting/lowering enums/variants with 255 cases has
    been fixed.
    #12066

  • Restarting the read of a host future after cancellation has been fixed.
    #12093

  • Compilation for OpenBSD on x86_64 has been fixed.
    #12097

  • Components containing a module type which exoprts a tag are now supported.
    #12125