Skip to content

Releases: bytecodealliance/wasmtime

dev: fix(gc): restore trace_infos if worklist increment fails (#13977)

Choose a tag to compare

@github-actions github-actions released this 28 Sep 20:31
60ad7d1
process_worklist_increment used mem::take on heap.trace_infos and only
wrote it back on the success path. If worklist_pop or scan returned an
error, the local Vec was dropped and the heap permanently lost its
trace table for the rest of the collection.

Restore trace_infos after the increment body whether the result is Ok
or Err.

Signed-off-by: Sebastien Tardif <sebtardif@ncf.ca>

v47.0.2: Release Wasmtime 47.0.2 (#13925)

Choose a tag to compare

@github-actions github-actions released this 21 Jul 19:57
Immutable release. Only release title and notes can be modified.
90fed3c

47.0.2

Released 2026-07-21.

Fixed

  • Fix async-delivered write-closed events for futures.
    #13914

  • Fix call hooks with yields and concurrent execution.
    #13871

v47.0.1: Release Wasmtime 47.0.1 (#13907)

Choose a tag to compare

@github-actions github-actions released this 20 Jul 20:55
Immutable release. Only release title and notes can be modified.
3efe09e

47.0.1

Released 2026-07-20.

Fixed

  • Fixed publication of wasmtime-cli to crates.io.
    #13902

v47.0.0: Release Wasmtime 47.0.0 (#13898)

Choose a tag to compare

@github-actions github-actions released this 20 Jul 15:12
Immutable release. Only release title and notes can be modified.
39d6716

47.0.0

Released 2026-07-20.

Added

  • Wasmtime now has the WebAssembly GC proposal enabled by default.
    #13594

  • Wasmtime now has the WebAssembly exception-handling proposal enabled by
    default.
    #13603

  • Cranelift now supports the compact unwind format on Mach-O platforms.
    #13586

  • Wasmtime now supports bounds-checked unsafe intrinsics which take spectre
    mitigations into account.
    #13597

  • The wasmtime::Engine type now supports reflection to determine the value of
    most Config options that were selected during creation.
    #13671

  • Support for fibers on unsupported architectures is now supported through an
    opt-in compile time Cargo feature defining a C API embedders can implement.
    #13620

  • Embedders can now create an ArrayRef with a memcpy-style constructor.
    #13716

  • A new Accessor::poll_ready_for_concurrent_call API can be used to detect
    when backpressure indicates that a function is ready to be invoked.
    #13683

Changed

  • Support for wasi-threads and Wasmtime's wasi-common crate have been removed.
    For more information see the associated RFC in Wasmtime.
    #13558

  • The call_indirect instruction of final super types has been optimized when
    the GC proposal is enabled.
    #13572

  • Cranelift's *_imm builder helpers have been deprecated in favor of
    *_imm_{s,u} helpers.
    #13583

  • The wasmtime CLI's syntax supported for --invoke with components now
    supports fully qualified WIT interface names.
    #13564

  • Cranelift's stack_{load,store} instructions have been removed.
    #13580

  • Cranelift's {band,bor,bxor}_not instructions have been removed.
    #13590

  • Cranelift's global_value instruction has been removed.
    #13682

  • The wasmtime wizer subcommand now supports specifying the initialization
    function with WAVE for components.
    #13582

  • Wasmtime's codegen on aarch64 for the i32x4.relaxed_dot_i8x16_i7x16_add_s
    wasm instruction now uses a single sdot instruction where possible.
    #13640

  • Wasmtime's .wasmtime{traps,addrmap} sections in *.cwasm files are now
    significantly smaller.
    #13628

  • Wasmtime now supports removing symbols from *.cwasm files and additionally
    has a documentation page about producing minimally-sized *.cwasm outputs.
    #13630

  • Wasmtime now suports resources in the named_imports option of bindgen!.
    #13666

  • Wasmtime now invokes the host's socket_addr_check callback for implicit
    binds performed in WASIp3.
    #13677

  • Wasmtime's component-to-component sync-to-sync fused adapters have been
    optimized.
    #13695

  • Cranelift now supports RISC-V's Zvbb extension.
    #13738

Fixed

  • The IPV6_V6ONLY option is now set for UDP sockets.
    #13596

  • Uncaught wasm exceptions at component boundaries are now turned into traps to
    prevent components catching exceptions from other components.
    #13613

  • Addresses being sent do with WASIp3 and UDP are now validated as they are in
    WASIp2.
    #13631

  • GC roots on component model fiber stacks are now properly traced.
    #13693

  • An unaligned load when reading debug state slot values has been fixed.
    #13791

v46.0.1: Release Wasmtime 46.0.1 (#13722)

Choose a tag to compare

@github-actions github-actions released this 24 Jun 18:51
Immutable release. Only release title and notes can be modified.
823d1b8

46.0.1

Released 2026-06-24.

Fixed

  • WASI hard links and renames check wasmtime-wasi's FilePerms for destination
    GHSA-4ch3-9j33-3pmj
  • Explicit hint for generic call in wasmtime wit-bindgen.
    #13719

v45.0.3: Release Wasmtime 45.0.3 (#13724)

Choose a tag to compare

@github-actions github-actions released this 24 Jun 19:14
Immutable release. Only release title and notes can be modified.
84f1cbe

45.0.3

Released 2026-06-24.

Fixed

  • WASI hard links and renames check wasmtime-wasi's FilePerms for destination
    GHSA-4ch3-9j33-3pmj

v36.0.12: Release Wasmtime 36.0.12 (#13731)

Choose a tag to compare

@github-actions github-actions released this 24 Jun 19:41
Immutable release. Only release title and notes can be modified.
6c0a7fc

36.0.12

Released 2026-06-24.

Fixed

  • WASI hard links and renames check wasmtime-wasi's FilePerms for destination
    GHSA-4ch3-9j33-3pmj

v24.0.11: Release Wasmtime 24.0.11 (#13723)

Choose a tag to compare

@github-actions github-actions released this 24 Jun 18:14
Immutable release. Only release title and notes can be modified.
eb16067

24.0.11

Released 2026-06-24.

Fixed

  • WASI hard links and renames check wasmtime-wasi's FilePerms for destination
    GHSA-4ch3-9j33-3pmj

v46.0.0: Release Wasmtime 46.0.0 (#13696)

Choose a tag to compare

@github-actions github-actions released this 22 Jun 17:57
Immutable release. Only release title and notes can be modified.
423be7a

46.0.0

Released 2026-06-22.

Added

  • Added opt-in support for the WebAssembly branch-hinting proposal: the
    metadata.code.branch_hint custom section is parsed and used to mark cold
    blocks during Cranelift compilation, behind Config::wasm_branch_hinting
    (off by default).
    #13459

  • Wasmtime's C API now supports type reflection of GC values.
    #13268

  • Wasmtime now supports being compiled to arm64_32 platforms.
    #13259

  • The cranelift-frontend crate,the RISC-V Cranelift backend, and Wasmtime's
    component-model-async feature now support no_std.
    #13401
    #13479
    #13533

  • Wasmtime has initial support for the component model (implements "...")
    feature.
    #13361
    #13497
    #13513

  • The wasmtime CLI now supports configuring the initial-cwd property of
    WASI.
    #13468

  • The wasmtime serve subcommand now supports --header to set headers for the
    guest.
    #13471

  • Wasmtime supports WASI 0.2.12, which notably includes exit-with-code in
    stable.
    #13536

  • Wasmtime's component-model-async-bytes feature was renamed to
    component-model-bytes and now lifting/lowering using Bytes and BytesMut
    is directly supported.
    #13366

  • Wasmtime now exposes the async call stack of components through its public API
    which can be used to determine which root task performed an import call.
    #13510

  • Wasmtime now supports WASI 0.3.0 by default and the component-model-async
    wasm feature is now enabled by default.
    #13612

Changed

  • Performance of bulk-data-transfer instructions such as
    {array,table,memory}.{copy,fill,init} have been improved.
    #13312
    #13367
    #13368
    #13382
    #13407
    #13424
    #13438
    #13460
    #13524

  • Codegen for conditions based on ctz or clz has been optimized.
    #13332
    #13343

  • Cranelift now optimizes conditional branches of constant conditions into
    unconditional jumps.
    #13267
    #13391

  • Wasmtime's copying collector now has an in-wasm fast path for its bump
    allocator.
    #13323

  • Wasmtime's GC implementation has been hardened in the face of GC heap
    corruption to avoid panicking or aborting. Corruption is returned as a
    WasmtimeBug type for embedders to detect and safely tear down the
    store/instance.
    #13321
    #13320

  • Cranelift's MemFlags type is now renamed to MemFlagsData, and
    AliasRegions are now stored in the DFG.
    #13353
    #13354

  • Wasmtime now handles OOM gracefully in more situations.
    #13371
    #13372
    #13374
    #13375
    #13376
    #13377
    #13378
    #13379
    #13388
    #13413
    #13412
    #13414

  • Cranelift's egraph rewrite pass now uses a concept of fuel to avoid
    exponential blowup of rewrites.
    #13390

  • Wasmtime now consumes fuel in bulk-data-transfer instructions proportional to
    the size of the transfer.
    #13393
    #13448

  • Cranelift's ISLE format now supports structs as well as tuple fields for
    structs/enums.
    #13319
    #13335

  • Wasmtime's implementation of passive element and data segments is now
    optimized to perform more work in wasm itself and has a refactored
    representation on the host.
    #13394
    #13444

  • Heuristics for triggering GC in the DRC collector have been adjusted to avoid
    blowups seen in the wild.
    #13422

  • Wasmtime's default garbage collector is now the copying collector instead of
    the deferred-reference-counting collector. This collector should be more
    performant in most situations and additionally have the ability to collect
    cycles.
    #13439

  • Wasmtime now traps if a waitable is being waited on synchronously and
    additionally added to a waitable-set.
    #13415

  • Wasmtime's behavior with subtask.cancel is now adjusted to resume the
    cancelled task immediately instead of always yielding.
    #13443

  • The wasmtime_wasi_http::handler module has had its interface overhauled to
    better handle configuring the lifecycle of a request as it flows through
    the system in terms of timeouts and such.
    #13404

  • Most of Wasmtime's instance initialization is now compiled into a per-module
    initialization function rather than happening through the host in Wasmtime.
    #13487

  • The InstanceExportLookup trait has been generalized into ExportLookup, and
    this is now optionally implemented for wit_parser::ItemName with the
    wit-parser crate feature.
    #13505

  • Many of Cranelift's *_imm instructions have been removed in favor as they
    were just sugar over other opcodes. Builder-style methods remain, however.
    #13527
    #13541
    #13543
    #13545
    #13548
    #13553

  • Wasmtime's caching behavior is no longer gated on cfg(debug_assertions) and
    has been adjusted to handle a git source differently.
    #13535

  • Bindings generation for store-using *WithStore traits now have a type
    parameter of the store on the trait itself instead of on every method.
    #13549

  • Wasmtime now requires Rust 1.94.0 to compile.
    #13547

Fixed

  • Wasmtime's copying collector has had a few bugs related to how it's translated
    to CLIF fixed.
    #13381

  • Returning a ThrownException when there wasn't a pending exception within a
    store has been fixed.
    #13306

  • A DRC corruption issue when overwriting an i31ref slot has been fixed.
    #13307

  • Taking a store's exception from a debug handler has been fixed.
    #13310

  • Alignment checks of atomics with Winch have been fixed.
    #13337

  • GC barriers around managing the pending exception within a store have been
    fixed.
    #13330

  • Cranelift's handling of short jumps on some architectures is now improved to
    handle very large basic blocks.
    #13392

  • Cross-component str...

Read more

v45.0.2: Release Wasmtime 45.0.2 (#13643)

Choose a tag to compare

@github-actions github-actions released this 15 Jun 15:56
Immutable release. Only release title and notes can be modified.
a7c209d

45.0.2

Released 2026-06-15.

Fixed