Skip to content

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