Skip to content

v45.0.0: Release Wasmtime 45.0.0 (#13416)

Latest

Choose a tag to compare

@github-actions github-actions released this 21 May 18:13
· 111 commits to main since this release
Immutable release. Only release title and notes can be modified.
377cd91

45.0.0

Released 2026-05-21.

Added

  • Winch now respects the enable_nan_canonicalization setting.
    #12939

  • Initial support for invoking component functions asynchronously has been added
    to the C API.
    #12973

  • Cranelift's s390x backend implements more instructions from z17 and also
    implements more CLIF arithmetic overflow instructions.
    #12523
    #12707

  • Wasmtime's support for handling OOM in more APIs has expanded and is now
    documented as well.
    #12993
    #12988
    #13017
    #13047
    #13049
    #13051
    #13074
    #13083
    #13088
    #13224

  • The Component type now offers reflection APIs over the compiled in-memory
    view of instructions in the same manner Module does.
    #13073

  • The wasmtime CLI now has a hot-blocks subcommand to explore a
    perf-recorded output and show hot basic blocks of WebAssembly instructions.
    #13077

  • Wasmtime now has an initial implementation of a copying collector for GC,
    which notably enables collecting cycles unlike the DRC collector.
    #13093
    #13107

  • The WASI inherit_network and allow_ip_name_lookup options were added to
    the C API.
    #13145

  • The C API now has the ability to select Winch as well as the
    RegallocAlgorithm in use.
    #13155

  • The Wasmtime CLI now has a -Dmax-backtrace=N argument to control the number
    of frames captured.
    #13218

  • Wasmtime now tracks whether there are any active async tasks within a store
    and provides an embedder API to learn when there are none left.
    #13246

  • Cranelift now has an idempotent-store elimination pass.
    #13251

Changed

  • Wasmtime's DRC collector has received some optimizations to get some wins on
    local benchmarking.
    #12969
    #12974

  • Wasmtime's C API can now be built without the gc crate feature of Wasmtime.
    #12805

  • Wasmtime now has an implemented and improved grow-vs-collect heuristic to
    improve behavior of GC-using programs.
    #12942

  • Cranelift on aarch64 now uses a more optimized frame layout for tail-call-only
    functions.
    #11608

  • Wasmtime now supports a separate set of GC tunables different from the main
    set of tunables for linear memory to enable configuring it separately.
    #13080

  • Wasmtime no longer uses pointer authentication instructions for the
    implementation of fibers due to issues on Android.
    #13118

  • Wasmtime now requires Rust 1.93.0 to compile.
    #13127

  • The behavior of using Wasmtime as a CMake subproject has been improved.
    #13157

  • Reference types in the C/C++ API have been refactored and reorganized.
    #13154
    #13235

  • The Wasmtime CLI now warns about usage of wasi-common or wasi-threads as these
    components are slated for removal in Wasmtime 47.0.0. For more information see
    the associated RFC.
    #13264

  • Inlining in Wasmtime now has a different set of configuration options, notably
    more values are packed into -Cinlining=....
    #13250

Fixed

  • The WASIp1-to-WASIp2 adapter now handles nonblocking I/O in fd_{read,write}
    more appropriately.
    #13111

  • The Host header is injected less often for wasmtime-wasi-http.
    #13138

  • Downcasts of funcref values now uses the correct type for imported
    functions.
    #13161

  • The DRC allocator's memory usage during tracing has been reduced when there
    are large arrays.
    #13192

  • The performance of reading stdin in WASI has been improved.
    #13256

  • WASI path_open(TRUNCATE) bypasses FilePerms::WRITE host restriction.
    GHSA-2r75-cxrj-cmph