Skip to content

fix(deps): update rust crate wasmtime to v40#122

Merged
geofmureithi merged 2 commits intomainfrom
renovate/wasmtime-40.x
Jan 7, 2026
Merged

fix(deps): update rust crate wasmtime to v40#122
geofmureithi merged 2 commits intomainfrom
renovate/wasmtime-40.x

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jan 7, 2026

This PR contains the following updates:

Package Type Update Change
wasmtime dependencies major 33.0.040.0.0

Release Notes

bytecodealliance/wasmtime (wasmtime)

v40.0.0

Compare Source

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

v39.0.1

Compare Source

39.0.1

Released 2025-11-24.

Fixed
  • Compiling the debug feature without the gc feature enabled has been fixed.
    #​12074

v39.0.0

Compare Source

39.0.0

Released 2025-11-20.

Added
  • The Config::wasm_feature method is now public.
    #​11812

  • Enabling the wasm exceptions proposal is now exposed in the C API.
    #​11861

  • The wasmtime crate now has a custom-sync-primitives Cargo feature which
    enables using custom synchronization primitives defined by the embedder. This
    is useful in no_std targets where the default panic-on-contention primitives
    are not appropriate.
    #​11836

  • Wasmtime now supports unsafe intrinsics to be used for compile-time builtins.
    This can be used to provide give low-level access to host APIs/memory to a
    guest program in a controlled fashion.
    #​11825
    #​11918

  • The signals_based_traps configuration option is now exposed in the C API.
    #​11879

  • A new EqRef::from_i31 function has been added.
    #​11884

  • The wasmtime serve subcommand will, by default, now reuse instances when
    used with WASIp3 components. This increases throughput and additionally
    showcases the concurrent features of WASIp3. This can be opted-out-of on the
    CLI as well.
    #​11807

  • The C++ API for components has been filled out and implemented.
    #​11880
    #​11889
    #​11988

  • A new ResourceDynamic type, similar to Resource<T>, has been added to
    support host resources that have a dynamic tag at runtime rather than a
    statically known tag at compile time. This is then used to implement resources
    in the C/C++ API as well.
    #​11885
    #​11920

  • The C/C++ API of Wasmtime now supports the custom-page-sizes wasm proposal.
    #​11890

  • Initial support has been added for the cooperative multithreading component
    model proposal in Wasmtime, built on async primitives.
    #​11751

  • The epoch_deadline_callback Rust API has been bound in C++.
    #​11945

  • A new Request::into_http helper has been added to the WASIp3 implementation
    of wasi:http.
    #​11843

  • A define_unknown_imports_as_traps function has been added to the C API.
    #​11962

  • A callback-based implementation of stdout and stderr has been added to the
    C API for WASI configuration.
    #​11965

Changed
  • Running async functions in the component model now operates at the
    Store-level of abstraction rather than an Instance.
    #​11796

  • The wasmtime serve subcommand no longer mistakenly spawns an epoch thread
    per-request and instead uses a single epoch thread.
    #​11817

  • The component-model-async Cargo feature is now on-by-default. Note that it
    is still gated at runtime by default. Also note that Wasmtime 39 does not include
    #​12031 which means
    that components using async produced with the latest wasm-tools will not run
    in Wasmtime 39. To run async components it's recommended to pin to a
    historical version of wasm-tools and guest toolchains for now.
    #​11822

  • Bindings generated by wiggle no longer use async_trait.
    #​11839

  • Wasmtime's documentation now has an example of a plugin system using Wasmtime.
    #​11848

  • Profiling with perfmap or jitdump now uses O_APPEND to be more amenable to
    other engines in the same process also using perfmap/jitdump.
    #​11865

  • The wasmtime-wasi-http crate now uses UnsyncBoxBody to clarify that Sync
    is not required.
    #​11941

  • A . character is now used instead of / int he bindgen! macro to separate
    interface members.
    #​11947

  • The func_new function for component linkers now provides the type to the
    callee so it knows the type that the component that imported it is using.
    #​11944

  • The component::Func type now has a type accessor and the old params/result
    accessors were deleted.
    #​11943

  • Wasmtime now requires Rust 1.89.0 or later to compile.
    #​11959

Fixed
  • Some panics handling shapes of components with resources in various locations
    has been fixed.
    #​11798

  • Bitwise float operations in Cranelift have been fixed on aarch64.
    #​11811

  • An off-by-one in the bounds check of wasm atomic operations has been fixed.
    #​11977

  • Bounds-check elision now happens again with 4 GiB guard pages.
    #​11973

v38.0.4

Compare Source

38.0.4

Released 2025-11-11.

Fixed

v38.0.3

Compare Source

38.0.3

Released 2025-10-24.

Fixed
  • Fix possible host crash with host-to-wasm component intrinsics
    CVE-2025-62711

v38.0.2: : Release Wasmtime 38.0.2 (#​11903)

Compare Source

38.0.2

Released 2025-10-21.

Changed
  • This repository is attempting to start out using GitHub's "Immutable Releases"
    feature with this release, and this'll be the first release, assuming all goes
    well, that has this enabled.
    #​11901
Fixed
  • Fix compatibility with the Go runtime on Windows for exceptions.
    #​11892

v38.0.1

38.0.1

Released 2025-10-20.

Fixed
  • Fixed some automation that went wrong with the 38.0.0 release.

v37.0.3

Compare Source

37.0.3

Released 2025-11-11.

Fixed

v37.0.2

Compare Source

37.0.2

Released 2025-10-07.

Fixed
  • Fix a memory leak in the C API when using anyref or externref.
    CVE-2025-61670.

v37.0.1

Compare Source

37.0.1

Released 2025-09-23.

Fixed
  • Cranelift's cranelift-jit crate now properly applies relocations to ADRP
    instructions on aarch64; a zero-extension on the offset was fixed to properly
    sign-extend instead.
    #​11734

v37.0.0

Compare Source

37.0.0

Released 2025-09-20.

Added
  • Wasmtime now fully implements the WebAssembly exception-handling proposal.
    Support is still disabled by default but is ready for testing. The proposal
    will be enabled by default in a future release of Wasmtime.
    #​11326

  • An initial implementation of WASIp3 is available for the 0.3.0-rc-2025-08-15
    tag made for the WASIp3 release. Note that this is not production ready yet
    but is an excellent time to start kicking the tires in preparation for an
    upcoming officialy WASIp3 0.3.0 release. Users of the CLI can opt-in with
    -Sp3 -Wcomponent-model-async.
    #​11406
    #​11423
    #​11443

  • Wasmtime has initial support for the Linux PAGEMAP_SCAN ioctl which can
    greatly improve instantiation throughput in scenarios with a high number of
    instantiations and short instance lifetime. This support is disabled by
    default but will likely be enabled by default in a future release.
    #​11372
    #​11433

  • GC support can now be configured in Config and not only through crate
    features through Config::gc_support.
    #​11463

  • Wasmtime now supports reading metrics of the pooling allocator at runtime.
    #​11490

  • The ManuallyRooted type is now replaced with OwnedRooted which is intended
    to make management of GC object lifetimes on the host easier.
    #​11514

  • Wasmtime's documentation of the C++ embedding API and examples has been
    expanded.
    #​11569

  • Wasmtime's support for the stack-switching WebAssembly proposal continues to
    progress on x86_64 Linux.
    #​11003

Changed
  • The preview0 and preview1 modules and features in the wasmtime-wasi
    crate are now called p0 and p1.
    #​11380

  • Release artifacts for the C API are now unconditionally built with unwind
    tables.
    #​11383

  • Wasmtime now requires Rust 1.87.0 or later to build.
    #​11396

  • The component-model-async gated AbortHandle is now named JoinHandle.
    #​11414

  • Wasmtime's internal implementation details are now async in many more
    locations to help ensure the implementation is more sound.
    #​11411
    #​11416
    #​11442
    #​11444
    #​11457
    #​11460
    #​11461
    #​11468
    #​11470
    #​11481
    #​11496

  • Component-model-async primitives such as streams, tasks, etc, now use the same
    table as resources in a component. This means that guest-visible allocated
    indices are updated slightly.
    #​11374

  • Wasmtime's precompiled binaries available from CI now include the
    component-model-async feature.
    #​11429

  • C API release artifacts are now built with LTO so they have a smaller size.
    #​11483

  • Code can no longer be loaded on x86_64-unknown-none by default without
    opting-in to a contract that either the host is compiled with SSE2 support or
    wasm is compiled with enough features that libcalls aren't used.
    #​11553

  • Host support for component model async futures/streams has been updated to a
    new API.
    #​11515

Fixed
  • GC of dead DWARF has been improved.
    #​11402

  • Wasm-gc branching instructions now correctly check for fuel.
    #​11426

  • The array.new_default instruction now checks for fuel/epochs in its inner
    loop.
    #​11428

  • The "min" C API artifacts now have correct headers.
    #​11479

  • GC OOM during const eval no longer panics.
    #​11557

  • Wasmtime now properly respects a disabled std feature even on targets which
    have std available.
    #​11568

v36.0.3

Compare Source

36.0.3

Released 2025-11-11.

Fixed

v36.0.2

Compare Source

36.0.2

Released 2025-08-26.

Fixed
  • Wasmtime will no longer panic in the pooling allocator when in near-OOM
    conditions related to resetting the linear memory of a slot.
    #​11510

v36.0.1

Compare Source

36.0.1

Released 2025-08-21.

Added
  • Accessors for internal WASI-related contexts are added to
    wasmtime_wasi::WasiCtx to account for refactorings that happened in this
    release.
    #​11473
Changed
  • Release artifacts for the C API are now smaller than the previous release to
    assist with redistribution as-is.
    #​11483

v36.0.0

Compare Source

36.0.0

Released 2025-08-20.

Added
Changed
  • Users who implemented WasiHttpView::is_forbidden_header from
    wasmtime-wasi-http now need to include DEFAULT_FORBIDDEN_HEADERS, e.g.
    DEFAULT_FORBIDDEN_HEADERS.contains(name) || name.as_str() == "custom-forbidden-header"
    #​11292

  • Cranelift's incremental cache has received some optimizations.
    #​11186

  • Wasmtime's internal implementations of WebAssembly primitives has been
    refactored to be modeled with safer internal primitives.
    #​11211
    #​11212
    #​11216
    #​11229
    #​11215
    #​11254
    #​11255
    #​11319
    #​11320

  • Detection of native hardware features has been refactored on s390x.
    #​11220

  • Further progress has been made towards an implementation of the WebAssembly
    exceptions proposal, although it is not yet complete.
    #​11230
    #​11321

  • Cranelift's assembler for x64 now supports EVEX encoding.
    #​11153
    #​11270
    #​11303

  • The default implementation of send_request in the wasmtime-wasi-http crate
    is now behind an on-by-default feature gate.
    #​11323

  • Configuration of the bindgen! macro has been redesigned to more consistently
    configure per-function options such as whether or not it's async.
    #​11328

  • Initial support fo mutatis has been added to Wasmtime's fuzzers.
    #​11290

  • The debug-builtins crate feature of wasmtime no compiles on no_std
    targets.
    #​11304

Fixed
  • Deserializing external modules no long unnecessarily requires the allocation
    to be aligned.
    #​11306

  • A CMake linker error and warning when using the C API on macOS has been fixed.
    #​11293
    #​11315

  • The C API declaration of wasmtime_component_linker_instance_add_func has
    been fixed.
    #​11327

  • The calculation of reachable DWARF has been fixed.
    #​11338

v35.0.0

Compare Source

35.0.0

Released 2025-07-22.

Added
  • A new InputFile type has been added for specifying stdin as a file in WASI.
    #​10968

  • Conditional branches to unconditional traps are now translated to conditional
    traps during legalization.
    #​10988

  • The TE HTTP header can now be specified by guests.
    #​11002

  • Winch on AArch64 should now pass all WebAssembly MVP tests. Note that it is
    still not yet Tier 1 at this time, however.
    #​10829
    #​11013
    #​11031
    #​11051

  • The x64 backend now has lowering rules for {add,sub,or,and} mem, imm
    #​11043

  • Initial support for WASIp2 in the C API has started to land.
    #​11055
    #​11172

  • Initial support for GC support in the component model has started to land
    (note that it is not finished yet).
    #​10967
    #​11020

  • The wasmtime-wasi-nn crate now has a feature to use a custom ONNX runtime.
    #​11060

  • Cranelift now optimizes division-by-constant operations to no longer use
    division.
    #​11129

  • A native-tls backend has been added for the wasi-tls implementation.
    #​11064

Changed
  • Many more instructions for the x64 backend in Cranelift were migrated to the
    new assembler.
    #​10927
    #​10928
    #​10918
    #​10946
    #​10954
    #​10958
    #​10971
    #​10942
    #​10975
    #​11017
    #​10898
    #​10836
    ... (and more)

  • Wasmtime internally uses Pin for VM data structures to make the internal
    implementations more sound to use. This has no effect on the public API of
    Wasmtime.
    #​10934
    #​10937
    #​10943
    #​10959
    #​11042

  • Fused adapters between components now transfer the enum component model type
    more efficiently.
    #​10939

  • Filenames of --emit-clif now match the symbol names found in *.cwasm
    artifacts and include the function name as well.
    #​10947
    #​11040

  • Wasmtime-internal crates are now all named wasmtime-internal-* to even
    further discourage their use.
    #​10963

  • Codegen of conditional traps with float compares has been improved.
    #​10966

  • More patterns are now optimized in ISLE mid-end rules.
    #​10978
    #​10979
    #​11173

  • Winch's support for constants/scratch registers has been improved internally.
    #​10986
    #​10998

  • The C API artifacts on Windows are now produced with Clang instead of
    cl.exe.
    #​10890

  • WebAssembly operand types are now taken into account during translation to
    optimize codegen better in the face of subtyping.
    #​11030

  • The behavior of blocking-write-and-flush has been updated during flushing
    when closed is found.
    #​11018

  • WASI WITs have been updated to 0.2.6.
    #​11049

  • OpenVINO has been updated to v2025.1.
    #​11054

  • The size of the wasmtime.addrmap section in *.cwasm artifacts has been
    shrunk slightly.
    #​11126

  • Authorities in wasmtime-wasi-http can now contain the : character.
    #​11145

  • Wasmtime now requires Rust 1.86 to compile.
    #​11142

  • Wasmtime's DRC collector has been optimized and has a new more efficient means
    of managing the set of over-approximated roots on the stack.
    #​11144
    #​11148
    #​11167
    #​11168
    #​11169
    #​11175

  • The ComponentType trait in Wasmtime now requires the Send and Sync
    bounds for all implementors.
    #​11160

  • The V128 type is now usable on platforms other than aarch64 and x86_64.
    #​11165

  • Wasmtime's policy on unsafe code and guidelines has been added.
    #​11177

  • The std crate will no longer implicitly be used on cfg(unix) and
    cfg(windows) targets when the std Cargo feature is disabled. This means
    that these platforms now require std to be enabled to use the
    platform-specific implementation of linear memory, for example.
    #​11152

Fixed
  • A panic when optimizing icmp with vectors has been fixed.
    #​10948

  • A panic when lowering scalar_to_vector with i16x8 types has been fixed.
    #​10949

  • The vector state register is now considered clobbered by calls on riscv64 to
    ensure it's updated across calls.
    #​11048

  • An instance of gdb crashing on DWARF emitted by Wasmtime has been fixed.
    #​11077

  • Fix a panic in the host caused by preview1 guests using fd_renumber.
    CVE-2025-53901.

  • Fix a panic in the preview1 adapter caused by guests using fd_renumber.
    #​11277

v34.0.2

Compare Source

34.0.2

Released 2025-07-18.

Fixed
  • Fix a panic in the host caused by preview1 guests using fd_renumber.
    CVE-2025-53901.

  • Fix a panic in the preview1 adapter caused by guests using fd_renumber.
    #​11277

34.0.1

Released 2025-06-24.

Fixed
  • Fix a panic with host-defined tables/globals and concrete reference
    types.
    #​11103

v34.0.1

Compare Source

34.0.1

Released 2025-06-24.

Fixed
  • Fix a panic with host-defined tables/globals and concrete reference
    types.
    #​11103

v34.0.0

Compare Source

34.0.0

Released 2025-06-20.

Added
  • Support for SIMD in the Pulley interpreter can now be disabled at compile-time
    to shrink the size of the final binary.
    #​10727

  • The C API now has wasmtime_trap_new_code to create a wasm_trap_t from
    its code.
    #​10765

  • Winch's support for x86_64 is now classified with tier 1 support in Wasmtime.
    #​10755

  • Winch's support for aarch64 now implements stack checks to pass many more spec
    tests.
    #​10763

  • Cranelift's s390x backend now has full support for the f128 type.
    #​10774

  • Wasmtime's C API for the component model has initial support for calling
    functions.
    #​10697
    #​10841
    #​10858
    #​10864
    #​10877

  • The wasmtime wast command now has a --generate-dwarf flag to show
    filename/line number information for backtraces.
    #​10780

Changed
  • The shape of bindgen!-generated add_to_linker functions has changed with
    the removal of GetHost and replacement of a HasData trait. For more
    information see the associated PR.
    #​10770

  • Wasmtime's Store<T> now requires that T: 'static. This is done in
    preparation for merging WASIp3 work to the main repository with some more
    information on the associated PR.
    #​10760

  • The wasmtime::component::Instance::instance_pre method is now public.
    #​10761

  • Wasmtime and Cranelift's minimnum supported version of Rust (MSRV) is now
    1.85.0.
    #​10785

  • Cranelift's debugtrap on aarch64 now generates brk #&#8203;0xf000 for debuggers
    to recognize it.
    #​10813

  • The wasi-http implementation no longer generates a trap if the handle to
    receive the response on the host is dropped early.
    #​10833

  • The wasmtime serve command will now send some boilerplate descriptive HTML
    on a 500 server error instead of nothing.
    #​10851

  • A significant amount of work has gone into the new assembler for the x64
    backend. Too many PRs to list here but progress continues apace at defining
    all machine instructions in a standalone crate.

  • Cranelift will now reject unimplemented big-endian loads/stores on backends
    that do not implement this functionality.
    #​10863

  • The wasmtime explore generated HTML handles large modules better now.
    #​10892

  • Wasmtime's internal representation of wasmtime::Func has changed and a
    previous optimization of Func::call has been lost. If affected it'd
    recommended to use Func::call_unchecked instead or to open an issue.
    #​10897


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/wasmtime-40.x branch from 8681c5a to b31b536 Compare January 7, 2026 17:33
@renovate renovate bot force-pushed the renovate/wasmtime-40.x branch from b31b536 to a184b50 Compare January 7, 2026 17:37
@geofmureithi geofmureithi merged commit 2e3dffc into main Jan 7, 2026
2 checks passed
@geofmureithi geofmureithi deleted the renovate/wasmtime-40.x branch January 7, 2026 18:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant