fix(deps): update rust crate wasmtime to v40#122
Merged
geofmureithi merged 2 commits intomainfrom Jan 7, 2026
Merged
Conversation
8681c5a to
b31b536
Compare
b31b536 to
a184b50
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
33.0.0→40.0.0Release Notes
bytecodealliance/wasmtime (wasmtime)
v40.0.0Compare Source
40.0.0
Released 2025-12-20.
Added
WASIp3 support for
wasi:httpnow implementsResponse::from_httpto convertfrom 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_callinstruction which supports being turned into NOPs at runtime.#12061
#12101
Changed
Support for the WebAssembly
threadsproposal is now classified as tier 2 bydefault. Additionally creation of
SharedMemoryis disabled by deafult behinda 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
Arccloneand 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
UnsyncBoxBodytype is now used everywhere in wasmtime-wasi-http insteadof 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
ResourceTabletype will no longer useTombstonewhen compiled in debugmode.
#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.popcnthas been fixed in Winch for some potentialinputs.
#12010
A panic in
Instance::prepare_callfor some component-model-async situationshas 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
tagare now supported.#12125
v39.0.1Compare Source
39.0.1
Released 2025-11-24.
Fixed
debugfeature without thegcfeature enabled has been fixed.#12074
v39.0.0Compare Source
39.0.0
Released 2025-11-20.
Added
Initial work has begun to support WebAssembly-level debugging natively in
Wasmtime. This is intended to complement today's preexisting DWARF-level
debugging, but this work will be portable and operate at the WebAssembly level
of abstraction rather than the machine-level. Note that this work is not yet
complete at this time but is expected to get filled out over the coming
releases.
#11768
#11769
#11873
#11892
#11895
The pooling allocator now exposes more metrics about unused slots.
#11789
The Wizer and component-init projects have been merged into Wasmtime under
a new
wasmtime wizerCLI subcommand andwasmtime-wizercrate. This ismostly a drop-in replacement for both with a minor caveat that the
initialization function is now called
wizer-initializeinstead ofwizer.initializeto be compatible with components.#11805
#11851
#11853
#11855
#11857
#11863
#11866
#11867
#11877
#11876
#11878
#11891
#11897
#11898
The
Config::wasm_featuremethod is now public.#11812
Enabling the wasm exceptions proposal is now exposed in the C API.
#11861
The
wasmtimecrate now has acustom-sync-primitivesCargo feature whichenables using custom synchronization primitives defined by the embedder. This
is useful in
no_stdtargets where the default panic-on-contention primitivesare 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_trapsconfiguration option is now exposed in the C API.#11879
A new
EqRef::from_i31function has been added.#11884
The
wasmtime servesubcommand will, by default, now reuse instances whenused 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
ResourceDynamictype, similar toResource<T>, has been added tosupport 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_callbackRust API has been bound in C++.#11945
A new
Request::into_httphelper has been added to the WASIp3 implementationof
wasi:http.#11843
A
define_unknown_imports_as_trapsfunction has been added to the C API.#11962
A callback-based implementation of
stdoutandstderrhas been added to theC API for WASI configuration.
#11965
Changed
Running async functions in the component model now operates at the
Store-level of abstraction rather than anInstance.#11796
The
wasmtime servesubcommand no longer mistakenly spawns an epoch threadper-request and instead uses a single epoch thread.
#11817
The
component-model-asyncCargo feature is now on-by-default. Note that itis 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-toolswill not runin Wasmtime 39. To run async components it's recommended to pin to a
historical version of
wasm-toolsand guest toolchains for now.#11822
Bindings generated by
wiggleno longer useasync_trait.#11839
Wasmtime's documentation now has an example of a plugin system using Wasmtime.
#11848
Profiling with perfmap or jitdump now uses
O_APPENDto be more amenable toother engines in the same process also using perfmap/jitdump.
#11865
The
wasmtime-wasi-httpcrate now usesUnsyncBoxBodyto clarify thatSyncis not required.
#11941
A
.character is now used instead of/int hebindgen!macro to separateinterface members.
#11947
The
func_newfunction for component linkers now provides the type to thecallee so it knows the type that the component that imported it is using.
#11944
The
component::Functype now has a type accessor and the old params/resultaccessors 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.4Compare Source
38.0.4
Released 2025-11-11.
Fixed
Memory.CVE-2025-64345
v38.0.3Compare Source
38.0.3
Released 2025-10-24.
Fixed
CVE-2025-62711
v38.0.2: : Release Wasmtime 38.0.2 (#11903)Compare Source
38.0.2
Released 2025-10-21.
Changed
feature with this release, and this'll be the first release, assuming all goes
well, that has this enabled.
#11901
Fixed
#11892
v38.0.138.0.1
Released 2025-10-20.
Fixed
v37.0.3Compare Source
37.0.3
Released 2025-11-11.
Fixed
Memory.CVE-2025-64345
v37.0.2Compare Source
37.0.2
Released 2025-10-07.
Fixed
anyreforexternref.CVE-2025-61670.
v37.0.1Compare Source
37.0.1
Released 2025-09-23.
Fixed
cranelift-jitcrate now properly applies relocations toADRPinstructions on aarch64; a zero-extension on the offset was fixed to properly
sign-extend instead.
#11734
v37.0.0Compare 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-15tag 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_SCANioctl which cangreatly 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
Configand not only through cratefeatures through
Config::gc_support.#11463
Wasmtime now supports reading metrics of the pooling allocator at runtime.
#11490
The
ManuallyRootedtype is now replaced withOwnedRootedwhich is intendedto 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
preview0andpreview1modules and features in thewasmtime-wasicrate are now called
p0andp1.#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
AbortHandleis now namedJoinHandle.#11414
Wasmtime's internal implementation details are now
asyncin many morelocations 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-asyncfeature.#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-noneby default withoutopting-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_defaultinstruction now checks for fuel/epochs in its innerloop.
#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
stdfeature even on targets whichhave
stdavailable.#11568
v36.0.3Compare Source
36.0.3
Released 2025-11-11.
Fixed
Memory.CVE-2025-64345
v36.0.2Compare Source
36.0.2
Released 2025-08-26.
Fixed
conditions related to resetting the linear memory of a slot.
#11510
v36.0.1Compare Source
36.0.1
Released 2025-08-21.
Added
wasmtime_wasi::WasiCtxto account for refactorings that happened in thisrelease.
#11473
Changed
assist with redistribution as-is.
#11483
v36.0.0Compare Source
36.0.0
Released 2025-08-20.
Added
Cranelift's has initial support for inlining between functions. Wasmtime
additionally now has support for inlining as well, for example between modules
in a component.
#11210
#11239
#11228
#11269
#11283
The async proposal for the Component Model is now fully implemented in
Wasmtime with a number of WASIp3 interfaces implemented. The implementation
is still off-by-default and the implementation of WASIp3 is not fully
complete, but is remains suitable for testing.
#11127
#11136
#11137
#11238
#11221
#11250
#11257
#11291
#11325
Changed
Users who implemented
WasiHttpView::is_forbidden_headerfromwasmtime-wasi-httpnow need to includeDEFAULT_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_requestin thewasmtime-wasi-httpcrateis now behind an on-by-default feature gate.
#11323
Configuration of the
bindgen!macro has been redesigned to more consistentlyconfigure per-function options such as whether or not it's async.
#11328
Initial support fo
mutatishas been added to Wasmtime's fuzzers.#11290
The
debug-builtinscrate feature ofwasmtimeno compiles onno_stdtargets.
#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_funchasbeen fixed.
#11327
The calculation of reachable DWARF has been fixed.
#11338
v35.0.0Compare Source
35.0.0
Released 2025-07-22.
Added
A new
InputFiletype 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
TEHTTP 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-nncrate 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-tlsbackend 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
Pinfor VM data structures to make the internalimplementations 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
enumcomponent model typemore efficiently.
#10939
Filenames of
--emit-clifnow match the symbol names found in*.cwasmartifacts and include the function name as well.
#10947
#11040
Wasmtime-internal crates are now all named
wasmtime-internal-*to evenfurther 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-flushhas been updated during flushingwhen
closedis 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.addrmapsection in*.cwasmartifacts has beenshrunk slightly.
#11126
Authorities in
wasmtime-wasi-httpcan 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
ComponentTypetrait in Wasmtime now requires theSendandSyncbounds for all implementors.
#11160
The
V128type is now usable on platforms other than aarch64 and x86_64.#11165
Wasmtime's policy on
unsafecode and guidelines has been added.#11177
The
stdcrate will no longer implicitly be used oncfg(unix)andcfg(windows)targets when thestdCargo feature is disabled. This meansthat these platforms now require
stdto be enabled to use theplatform-specific implementation of linear memory, for example.
#11152
Fixed
A panic when optimizing
icmpwith vectors has been fixed.#10948
A panic when lowering
scalar_to_vectorwithi16x8types 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
gdbcrashing 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.2Compare 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
types.
#11103
v34.0.1Compare Source
34.0.1
Released 2025-06-24.
Fixed
types.
#11103
v34.0.0Compare 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_codeto create awasm_trap_tfromits 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
f128type.#10774
Wasmtime's C API for the component model has initial support for calling
functions.
#10697
#10841
#10858
#10864
#10877
The
wasmtime wastcommand now has a--generate-dwarfflag to showfilename/line number information for backtraces.
#10780
Changed
The shape of
bindgen!-generatedadd_to_linkerfunctions has changed withthe removal of
GetHostand replacement of aHasDatatrait. For moreinformation see the associated PR.
#10770
Wasmtime's
Store<T>now requires thatT: 'static. This is done inpreparation for merging WASIp3 work to the main repository with some more
information on the associated PR.
#10760
The
wasmtime::component::Instance::instance_premethod is now public.#10761
Wasmtime and Cranelift's minimnum supported version of Rust (MSRV) is now
1.85.0.
#10785
Cranelift's
debugtrapon aarch64 now generatesbrk #​0xf000for debuggersto 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 servecommand will now send some boilerplate descriptive HTMLon 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 exploregenerated HTML handles large modules better now.#10892
Wasmtime's internal representation of
wasmtime::Funchas changed and aprevious optimization of
Func::callhas been lost. If affected it'drecommended to use
Func::call_uncheckedinstead 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.
This PR was generated by Mend Renovate. View the repository job log.