Update Rust crate wasi-common to v37 #105
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/wasi-common-37.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
22.0.0
->37.0.0
Release Notes
bytecodealliance/wasmtime (wasi-common)
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 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
Config
and not only through cratefeatures through
Config::gc_support
.#11463
Wasmtime now supports reading metrics of the pooling allocator at runtime.
#11490
The
ManuallyRooted
type is now replaced withOwnedRooted
which 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
preview0
andpreview1
modules and features in thewasmtime-wasi
crate are now called
p0
andp1
.#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 namedJoinHandle
.#11414
Wasmtime's internal implementation details are now
async
in 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-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 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_default
instruction 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
std
feature even on targets whichhave
std
available.#11568
v36.0.2
Compare Source
36.0.2
Released 2025-08-26.
Fixed
conditions related to resetting the linear memory of a slot.
#11510
v36.0.1
Compare Source
36.0.1
Released 2025-08-21.
Added
wasmtime_wasi::WasiCtx
to account for refactorings that happened in thisrelease.
#11473
Changed
assist with redistribution as-is.
#11483
v36.0.0
Compare 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_header
fromwasmtime-wasi-http
now 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_request
in thewasmtime-wasi-http
crateis 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
mutatis
has been added to Wasmtime's fuzzers.#11290
The
debug-builtins
crate feature ofwasmtime
no compiles onno_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
hasbeen 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 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
enum
component model typemore 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 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-flush
has been updated during flushingwhen
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 beenshrunk 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 theSend
andSync
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 oncfg(unix)
andcfg(windows)
targets when thestd
Cargo feature is disabled. This meansthat these platforms now require
std
to be enabled to use theplatform-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
withi16x8
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
types.
#11103
v34.0.1
Compare Source
34.0.1
Released 2025-06-24.
Fixed
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 awasm_trap_t
fromits 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 showfilename/line number information for backtraces.
#10780
Changed
The shape of
bindgen!
-generatedadd_to_linker
functions has changed withthe removal of
GetHost
and replacement of aHasData
trait. 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_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 generatesbrk #​0xf000
for 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 serve
command 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 explore
generated HTML handles large modules better now.#10892
Wasmtime's internal representation of
wasmtime::Func
has changed and aprevious optimization of
Func::call
has been lost. If affected it'drecommended to use
Func::call_unchecked
instead or to open an issue.#10897
v33.0.2
Compare Source
33.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
33.0.1
Released 2025-06-24.
Fixed
types.
#11103
v33.0.1
Compare Source
33.0.1
Released 2025-06-24.
Fixed
types.
#11103
v33.0.0
Compare Source
33.0.0
Released 2025-05-20.
Added
Cranelift now has initial support for
try_call
andtry_call_indirect
instructions, to be used in the future for the WebAssembly exception-handling
proposal. Wasmtime does not yet implement this proposal yet.
#10510
#10557
#10593
Cranelift can now optimize some simple possibly-side-effectful instructions,
such as division.
#10524
Wasmtime now supports
--invoke
for components using the WAVE format.#10054
Initial support for the Component Model has landed in Wasmtime's C API. Note
that the API is not yet feature-complete, however.
#10566
#10598
#10651
#10675
Wasmtime's C++ API is now available from this repository and the
bytecodealliance/wasmtime-cpp repository has been archived. Additionally the
monolithic
wasmtime.hh
header file has been split into separate headerfiles.
#10582
#10600
Wasmtime's cookbook-style documentation has been expanded.
#10630
Wasmtime's now supports custom yield behavior when using epoch interrupts.
#10671
Changed
Wasmtime's bindgen now type-checks export functions in the constructor of
the generated
{Worldname}Pre
or{Worldname}
structs, rather than at thecall of the export function.
#10610
Wasmtime's
component::Component
andcomponent::Instance
now have consistientget_export
andget_export_index
methods, which return(ComponentItem, ComponentExportIndex)
andComponentExportIndex
, respectively.#10597
On failure,
wasmtime serve
gives an internal server error response, ratherthan closing the connection.
#10645
Cranelift's single-pass allocator has been disabled due to being unable to
support internal refactorings in preparation for the WebAssembly exceptions
proposal. Re-enabling this allocator is tracked at
regalloc2#217 for
those interested.
#10554
Wasmtime's
{Array,Extern,Struct}Ref
functions will now automatically triggera GC.
#10560
Wasmtime's GC heaps now use the same translation techniques as linear memories
meaning they have far fewer bounds-checks than before.
#10503
Wasmtime's implementation of WASIp2 has moved to
wasmtime_wasi::p2
from theroot of the crate.
#10073
Wasmtime will no longer emit calls to Cranelift-defined "libcalls" and instead
everything goes through Wasmtime's libcall mechanism instead, paving the way
for a future change for more efficient stack limit checking in wasm. This can
also improve deserialize-from-disk times and improve page cache usage for
modules that use libcalls as relocations are no longer necessary.
#10657
Configuration of caching can now be done through an API instead of exclusively
through a configuration file. Additionally cache-related APIs in
Config
havechanged.
#10665
Resources in the Component Model are now stored in a single table per-instance
instead of per-type tables. Guests will see a different pattern of index
allocation but this is not expected to cause any issues at runtime.
#10701
Fixed
Some math intrinsics have been fixed when compiled by Rust 1.87+.
#10534
Component model libcalls correctly handle platform-specific argument extension
in ABIs.
#10540
An off-by-one issue with DWARF debuginfo has been fixed.
#10570
The
Config::target
method is no longer gated by a#[cfg]
for an enabledcompiler, it can be used when only the
runtime
feature is available.#10618
An issue with "simulated" DWARF has been fixed.
#10681
C/C++ headers are now tested that they can be included in isolation, and a
number of issues have been fixed.
#10694
v32.0.1
Compare Source
32.0.1
Released 2025-06-24.
Fixed
types.
#11103
v32.0.0
Compare Source
32.0.0
Released 2025-04-21.
Added
{Module,Component}::deserialize_raw
can now be used to deserialize anin-memory module while relying on external management of the memory.
#10321
An initial implementation of wasi-tls has been added.
#10249
The
wasmtime
CLI now supports hexadecimal integer CLI arguments.#10360
Cranelift now supports a
log2_min_function_alignment
flag.#10391
A new
wasmtime objdump
subcommand has been added to help explore and debug*.cwasm
files.#10405
Support for the pooling allocator has been added to the C API.
#10484
Support for the guest profiler with the component model has been added.
#10507
Changed
Cranelift
MemFlags
now has acan_move
flag which restricts whether a loador store can be moved.
#10340
The
.text
size of Pulley*.cwasm
files should be smaller with lesspadding.
#10285
The
wasmtime serve
subcommand now implements a graceful shutdown on ctrl-c.#10394
Stack maps used for GC are now stored in a serialized binary format that is
faster to deserialize.
#10404
The aegraph implementation in Cranelift has been simplified to remove the
union-find and canonical eclass IDs.
#10471
The
store_list
andload_list
helpers have been specialized in componentsfor
f32
andf64
.#9892
Cranelift now removes block params on critical-edge blocks.
#10485
The
Linker::define_unknown_imports_as_default_values
API now supportsdefining defaults for more kinds of items.
#10500
Wasmtime now requires Rust 1.84.0 to compile.
#10520
Fixed
Winch compilation of extadd instructions has been fixed.
#10337
Fix an issue with DRC collector's barriers.
#10371
Loads on
(ref null none)
that can trap are now performed.#10372
Fix reference count management in
AnyRef::from_raw
.#10374
An issue with multi-value returns in Winch has been fixed.
#10370
A panic at compile-time from an overflowing shift has been fixed when
targeting aarch64.
#10382
The
wasmtime serve
command no longer panics whenhandle
returns beforecalling
set
.#10387
Winch compilation of
replace_lane
instructions with floats has been fixed.#10393
An invalid integer-shift optimization on vector types has been removed.
#10413
The DWARF loclist to exprloc optimization has been fixed.
#10400
Objects in the DRC collector are now transitively dec-ref's when collected.
#10401
A bug with GC rec gropus and registration in an
Engine
has been fixed.#10435
A bug related to GC arrays of GC refs misreported their count of GC edges has
been fixed.
#10453
A bug related to appropriately adding stack maps for all GC variables has been
fixed.
#10456
#10468
A bug with
array.fill
has been fixed.#10470
GC structs are no longer reordered to optimize their size to fix subtyping.
#10463
Panics related to exceptions and components being mixed has been fixed.
#10473
Winch stack parameter alignment has been fixed.
#10513
Rendering inline function frames in a trap backtrace has been fixed.
#10523
v31.0.0
Compare Source
31.0.0
Released 2025-03-20.
Added
Winch's implementation of the SIMD proposal for WebAssembly is now
feature-complete (but still being fuzzed).
#10180
#10170
#10203
#10202
#10210
#10213
#10224
#10205
#10226
#10228
#10236
#10241
#10243
#10247
#10271
#10284
#10288
#10296
The pytorch implementation in wasmtime-wasi-nn now has GPU support.
#10204
Cranelift now supports emitting the AArch64
extr
instruction.#10229
Cranelift now supports emitting the x64
shld
instruction.#10233
Initial support for the stack-switching proposal has started to land, but it
is not complete just yet.
#10251
#10265
#10255
Changed
Pulley's implementation of loads/stores to linear memory has changed to
better support optimizations and reduction of interpreter opcodes in the
final binary.
#10154
Cranelift's verifier now ensures that integers used as address types have the
correct width.
#10209
Wasmtime and Cranelift's minimum supported version of Rust is now 1.83.0.
#10264
Wasmtime now mentions the filename when the input cannot be opened on the CLI.
#10292
All types are now generated in
component::bindgen!
, even if they're notreachable.
#10311
Tables allocated with the system allocator now use
alloc_zeroed
(akacalloc
) for allocation.#10313
Fixed
GC: the is-null-or-i31ref checks have been fixed.
#10221
GC: an incorrect assertion and canonicalized types for runtime usage has been
fixed.
#10223
GC: subtype checks for imported globals during instantiation have been fixed.
#10304
GC: exposing references to wasm in the
gc_alloc_raw
libcall has been fixed.#10322
Winch's fuel checks correctly sync fuel before the check now.
#10231
Winch's treatment of stores and other trapping ops has been fixed on AArch64.
#10201
Winch's handling of the shadow stack pointer has been fixed on AArch64.
#10263
Winch's handling of address calculations has been fixed on AArch64.
#10297
Winch's handling of multivalue return of constants has ben fixed.
#10315
v30.0.2
Compare Source
30.0.2
Released 2025-02-25.
Fixed
fix an issue caused by #9929.
#10290
Changed
cranelift-codegen
crate now no longer depends onarbitrary
, anow-unnecessary dependency.
#10217
v30.0.1
Compare Source
30.0.1
Released 2025-02-21.
Fixed
cranelift-assembler-x64
crate on Windowswhen the Rust toolchain is on a different drive than the project using
wasmtime
. For more details, see the Zulip discussion. #10270v30.0.0
Compare Source
30.0.0
Released 2025-02-20.
Added
New
wasmtime-wasi-io
crate provides a#![no_std]
wasi:io implementation,factored out of
wasmtime-wasi
. Users ofwasmtime-wasi
don't have todepend on this new crate.
#10036
Wasmtime's interpreter, Pulley, is now complete and has been listed as
tier 2.
#9897
#9884
#9943
#9944
#9983
#9966
#9935
#10034
#10057
#10095
Wasmtime's CI now checks that the repository builds for
aarch64-apple-ios
.Note that no tests are run for this target, so it's still tier 3.
#9888
Winch's support for AArch64 and simd on x64 have continued to progress
well. Winch additionally now fully supports the
threads
WebAssemblyproposal.
#9889
#9970
#9950
#9987
#9990
#9959
#10008
#10028
#10029
#10023
#10042
#10050
#10039
#10082
#10092
#10109
#10148
#10147
The
memory64
WebAssembly feature is now enabled by default. This WebAssemblyproposal is now considered a tier 1 feature.
#9937
#10159
Wasmtime's full test suite and CI now includes 32-bit platforms such as x86
and armv7 Linux. These platforms have been added to tier 3 status and use
Pulley as their execution backend.
#10025
Initial experimental support for WASIp3 and async features of the Component
Model have started to land. These features are not yet ready for
general-purpose use.
#10044
#10047
#10083
#10103
The
wasmtime
CLI now supports using a TOML configuration file via--config
in addition to CLI options.
#9811
#10132
Initial support for a new assembler on x64 has been added.
#10110
#10178
Changed
wasmtime-wasi
split theWasiView
trait intoIoView
andWasiView
, andwasmtime-wasi-http
re-usesIoView
inWasiHttpView
. Details on portingfor embedders in PR.
#10016
wasmtime-wasi
renamed some exported types and traits. Embedders which usePollable
,InputStream
,OutputStream
,Subscribe
,HostInputStream
,HostOutputStream
,PollableFuture
, orClosureFuture
from that cratewill need to rename those imports to their new names, describe in PR.
#10036
Components using a 64-bit linear memory should never have worked before, but
they're now rejected earlier in the validation process.
#9952
Module validation is now deterministic in the face of multiple errors.
#9947
Wasmtime's minimum supported version of Rust is now 1.82.0.
#9956
Cranelift will now deduplicate
trap[n]z
instructions.#10004
The
--emit-clif
option towasmtime compile
now emits post-optimizationCLIF.
#10011
The
signals-based-traps
Cargo feature has been removed in favor ofauto-detection of available features based on the
#[cfg]
directivesavailable for the target platform.
#9941
The
async_stack_zeroing
configuration knob now covers all stack allocations,not just those from the pooling allocator.
#10027
Wasmtime should work-by-default on more platforms, even those where Cranelift
has no support for the architecture. This is done by ensuring some
architecture and platform-specific bits are removed on unknown platforms (and
Pulley is used instead).
#10107
Wasmtime now compiles on platforms missing 64-bit atomics.
#10134
Fixed
Fixed a missing case for
Ref::matches_ty
should returntrue
.#9985
A bug with using the
single_pass
register allocation algorithm on x64/s390xhas been fixed by refactoring how branches are represented.
#10086
#10087
A bug with argument extensions on riscv64 has been fixed.
#10069
The
PartialEq
implementation forRegisteredType
has been fixed.#10091
The output of
component::bindgen!
now works with#![no_std]
crates.#10105
Fix
wasmtime wast
when combined with--fuel
.#10121
The
wat
feature of the C API is now plumbed correctly in a few morelocations.
#10124
Spurious wake-ups in
blocking_*
methods ofInputStream
andOutputStream
have been fixed.
#10113
v29.0.1
Compare Source
29.0.1
Released 2025-01-21.
Fixed
configurations that have multiple preopened directories.
#10064
v29.0.0
Compare Source
29.0.0
Released 2025-01-20.
Added
Winch now supports epoch-based interruption.
#9737
Pulley, Wasmtime's WebAssembly interpreter, has seen quite a lot of progress
and support fleshed out. It's still not 100% complete but should be about
ready to start kicking the tires.
#9744
The Wasmtime CLI now supports a
-Wextended-const
flag to control whether theextended-const
wasm proposal is enabled or not.#9768
Work continues to progress on the AArch64 Winch backend, bringing it closer to
completion.
#9762
#9767
#9751
#9784
#9781
#9792
#9787
#9798
#9850
Wasmtime now supports a "custom code publisher" which can be useful when
Wasmtime doesn't have built-in support for a particular environment.
#9778
Configuration options have been added for
wasmtime-wasi-http
outgoingbodies.
#9800
Log prefixes can now be disabled for the
wasmtime serve
command.#9821
A new
WASMTIME_LOG_NO_CONTEXT
environment variable was added to livealongside
WASMTIME_LOG
.#9902
Release artifacts for aarch64-musl targets are now available.
#9934
Changed
Wasmtime libcalls now return whether a trap happened rather than raising a
trap directly to better prepare for the Pulley interpreter and an eventual
implementation of Wasm exception-handling.
#9710
Wasmtime will now use the Pulley interpreter by default on platforms that
are not supported by Cranelift.
#9741
Demangling symbols in profiling and debugging has improved to handle failures
to demangle C++ symbols.
#9756
WASI WIT files have been updated to 0.2.3.
#9807
Wasmtime's
bindgen!
macro inasync
mode no longer uses#[async_trait]
an instead natively uses
async fn
in traits.#9867
Floats are no longer canonicalized flowing into or out of components.
#9879
Instance methods are now translated to static methods in DWARF translation.
#9898
The C API now supports debug builtins for debugging guest code.
#9915
Fixed
The header file for
wasmtime_instance_pre_instantiate
in the C API has beenfixed.
#9770
WebAssembly DWARF is more conservative in its GC pass during translation to
native DWARF.
#9829
Debugging intrinsics are fixed on Linux to be exported now.
#9866
v28.0.1
Compare Source
28.0.1
Released 2025-01-14.
Fixed
Store::into_data
.#10009
v28.0.0
Compare Source
28.0.0
Released 2024-12-20.
Added
The ISLE DSL used for Cranelift now has a first-class
bool
type.#9593
Cranelift now supports a new single-pass register allocator designed for
compile-time performance (unlike the current default which is optimized for
runtime-of-generated-code performance).
#9611
The
wasmtime
crate now natively supports thewasm-wave
crate and itsencoding of component value types.
#8872
A
Module
can now be created from an already-open file.#9571
A new default-enabled crate feature,
signals-based-traps
, has been added tothe
wasmtime
crate. When disabled then runtime signal handling is notrequired by the host. This is intended to help with future effort to port
Wasmtime to more platforms.
#9614
Linear memories may now be backed by
malloc
in certain conditions when guardpages are disabled, for example.
#9614
#9634
Wasmtime's
async
feature no longer requiresstd
.#9689
The buffer and budget capacity of
OutgoingBody
inwasmtime-wasi-http
arenow configurable.
#9670
Changed
Wasmtime's external and internal distinction of "static" and "dynamic"
memories has been refactored and reworded. All options are preserved but
exported under different names with improved documentation about how they all
interact with one another. (and everything should be easier to understand)
#9545
Each
Store<T>
now caches a single fiber stack in async mode to avoidallocating/deallocating if the store is used multiple times.
#9604
Linear memories now have a 32MiB guard region at the end instead of a 2GiB
guard region by default.
#9606
Wasmtime will no longer validate dependencies between WebAssembly features,
instead delegating this work to
wasmparser
's validator.#9623
Cranelift's
isle-in-source-tree
feature has been re-worked as an environmentvariable.
#9633
Wasmtime's minimum supported Rust version is now 1.81.
#9692
Synthetic types in DWARF are now more efficiently represented.
#9700
Debug builtins on Windows are now exported correctly.
#9706
Documentation on
Config
now clarifies that defaults of some options maydiffer depending on the selected target or compiler depending on features
supported.
#9705
Wasmtime's error-related types now all unconditionally implement the
Error
trait, even in
#[no_std]
mode.#9702
Fixed
Field type matching for subtyping with wasm GC has been fixed.
#9724
Native unwind info generated for s390x has been fixed in the face of tail
calls.
#9725
v27.0.0
Compare Source
27.0.0
Released 2024-11-20.
Added
Support for the Wasm GC proposal is now complete. A new "null" GC has been
also added which does not ever collect garbage.
#9389
#9392
#9401
#9435
#9437
#9438
#9446
#9448
#9454
#9455
#9484
Unstable WIT APIs now have feature gates configured at link-time and new
-Scli-exit-with-code
/-Snetwork-error-code
options are available as well.#9381
#9276
Initial support for the wide-arithmetic proposal has been implemented.
#9403
#9500
Guests on s390x now implement the "inline probestacks" for Cranelift to more
robustly detect stack overflows.
#9423
Missing CLI options for the pooling allocator have been filled out.
#9447
Cranelift now supports 128-bit atomics on x64.
#9459
A new Cargo feature has been added to the
wasmtime
crate to reexport thewasmparser
dependency.#9485
Support for a new PyTorch backend for wasi-nn has been added.
#9234
A new
-Cnative-unwind-info
flag has been added to thewasmtime
CLI.#9494
Initial support for illumos has been added.
#9535
A new
Caller::get_module_export
API has been added.#9525
Basic debug logging has been added to the debug info transformatino.
#9526
Changed
The WASI WITs vendored are now updated to 0.2.2.
#9395
The
wasmtime-wasi-runtime-config
is now namedwasmtime-wasi-config
.#9404
Documentation on the implementation status of WebAssembly proposals has been
updated.
#9434
Wasmtime's WASI documentation has been overhauled.
#9471
The
wasi_config_preopen_dir
in Wasmtime's C API now takes file/directorypermissions.
#9477
Detection of libunwind vs libgcc is now done with weak symbols.
#9479
Winch has improved detection of unsupported features in a
Config
.#9490
Winch now supports fuel-based interruption.
#9472
Wasmtime's minimum supported Rust version is now 1.80.
#9496
ISLE no longer supports scheme-style booleans.
#9522
ISLE now supports block comments.
#9529
Support for shared memory in the C API has been added.
#9507
Configuration options for guard size regions have been merged into a single
option.
#9528
Fixed
Double-registration of debug information for modules in components has been
fixed.
#9470
A panic on AArch64 for vector constants has been fixed.
#9482
A miscompile with
sdiv
andINT_MIN / -1
has been fixed on aarch64.#9541
v26.0.1
Compare Source
26.0.1
Released 2024-11-05.
Fixed
escape on Windows.
CVE-2024-51745.
v26.0.0
Compare Source
26.0.0
Released 2024-10-22.
Added
The "table64" extension of the memory64 proposals to WebAssembly has been
implemented.
#9206
Initial support has been added for compiling WebAssembly modules with Pulley,
Wasmtime's interpreter. Note that the interpreter is not feature complete yet.
#9240
Wasmtime can now execute code without relying on host-based signal handlers.
#9230
Work has continued on implementing the GC proposals in Wasmtime.
#9246
#9244
#9271
#9275
#9278
#9282
#9285
#9326
#9341
#9358
Support for ARM64 Windows has been finished with support for unwinding.
Release binaries are now also available for this platform.
#9266
#9283
The
bindgen!
macro now supports multiple paths to load WIT from.#9288
A new
-W async-stack-size=N
argument has been added to the CLI.#9302
A new
wasmtime completion
subcommand can be used to generate a completionscript for the Wasmtime CLI.
#9312
Components now support
initialize_copy_on_write_image
like core modules.#9357
Initial support for the ISLE verifier Crocus has landed.
#9178
Changed
Wasmtime now requires Rust 1.79.0 to compile.
#9202
The
future-trailers.get
inwasi-http
now returnsnone
when trailers areabsent.
#9208
The Cranelift instructions
iadd_cin
andisub_bin
were removed. Theisub_borrow
andiadd_carry
instructions were renamed to{u,s}add_carry
and
{u,s}sub_borrow
.#9199
Winch now supports multi-value results on AArch64.
#9218
Some issues related to
shutdown
have been fixed with WASI sockets.#9225
Cranelift now has a Cargo feature to enable support for all native ISAs and
not Pulley.
#9237
Cranelift support for
StructArgument
in the arm64, riscv64, and s390xbackends has been removed.
#9258
The pooling allocator no longer limits instances/memories/tables by default.
#9257
Stack overflow on an async stack will now print a message that this happened.
#9304
Cranelift's
cranelift-wasm
crate has been removed and folded directly intowasmtime-cranelift
.#9313
Cranelift's
TrapCode
type is now represented with a single byte.#9338
Fixed
Stack slots in Cranelift are now aligned from the start instead of the end.
#9279
The WASIp1 adapter now correctly handles allocations where the initial
alignment consumes the entire allocation.
#9356
v25.0.3
Compare Source
25.0.3
Released 2024-11-05.
Fixed
escape on Windows.
CVE-2024-51745.
v25.0.2
Compare Source
25.0.2
Released 2024-10-09.
Fixed
Fix a runtime crash when combining tail-calls with host imports that capture a
stack trace or trap.
GHSA-q8hx-mm92-4wvg
Fix a race condition could lead to WebAssembly control-flow integrity and type
safety violations.
GHSA-7qmx-3fpx-r45m
v25.0.1
Compare Source
25.0.1
Released 2024-09-24.
Added
wasmtime
CLI's-Wmax-wasm-stack
option now automatically configuresthe async stack size as well. A new
-Wasync-stack-size
option wasadditionally added to configure it too.
#9302
v25.0.0
Compare Source
25.0.0
Released 2024-09-20.
Added
The WinML backend of wasmtime-wasi-nn now supports FP16 and I64.
#8964
Pooling allocator configuration options for table elements and core instance
size can now be changed on the CLI.
#9138
Wasmtime now supports the extended-const WebAssembly proposal.
#9141
The
wasmtime
crate embedding API now hasArrayRef
for allocating wasm GCarrays.
#9145
Cranelift now has a
stack_switch
CLIF instruction to be used with theWebAssembly stack switching proposal.
#9078
There are now more constructors available on
bindgen!
-generated structuresfor component exports now which use instantiated components rather than
pre-instantiated components.
#9177
Changed
The host bindgen macro now accepts a new
verbose_tracing
option, which willtrace the value of
list
arguments. The new behavior of thetracing
optionis that it does not print
list
values withoutverbose_tracing
also beingpresent.
#9262
Wasmtime's support for WASI is now listed with the 0.2.1 version instead of
0.2.0. This is expected to not cause fallout or breakage, but please open an
issue if you see any problems.
#9063
Work continues on Winch's AArch64 backend.
#9114
#9092
#9171
Component model resource methods can now be generated as
async
and will doso by default if async is enabled for all functions.
#9091
Work has continued on Wasmtime's interpreter backend, Pulley.
#9089
The internal implementation of
input-stream
andoutput-stream
forfilesystems in
wasmtime-wasi
have been refactored to directly implementthe corresponding host traits. This additionally helps cleanup the internal
organization of host-side resources in
wasmtime-wasi
.#9129
Wasmtime now uses the new "user" stack maps in Cranelift rather than the old
regalloc-based stack maps for GC references.
#9082
Wasmtime's handling of WebAssembly features now works slightly differently
from before to provide better error messages and fewer panics on unsupported
WebAssembly features depending on compiler and target selection. Additionally
the reference-types WebAssembly proposal is always on-by-default regardless of
crate features.
#9158
#9162
The
wasmtime
CLI will now use the async version of I/O where possible toproperly support
-Wtimeout
and timing out instances blocked in I/O.#9184
Fixed
Use
tracing::Instrument
in generated bindings when tracing and async areenabled, ensuring that spans aren't present in traces from unrelated async
tasks.
#9217
#9263
Completed support for the
CallHook
API when using the component model.#9196
The compile time for a component model
enum
type with many cases should bemuch improved now.
#9122
Some minor bugfixes have been made for when Wasmtime is working with split
DWARF in WebAssembly files.
#9109
#9132
#9134
#9139
#9151
An issue with bounds checks and dynamic checks has been fixed in Winch to
ensure bounds checks are correctly implemented.
#9156
v24.0.4
Compare Source
24.0.4
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
24.0.3
Released 2025-06-24.
Fixed
types.
#11103
v24.0.3
Compare Source
24.0.3
Released 2025-06-24.
Fixed
types.
#11103
v24.0.2
Compare Source
24.0.2
Released 2024-11-05.
Fixed
escape on Windows.
CVE-2024-51745.
v24.0.1
Compare Source
24.0.1
Released 2024-10-09.
Fixed
Fix a runtime crash when combining tail-calls with host imports that capture a
stack trace or trap.
GHSA-q8hx-mm92-4wvg
Fix a race condition could lead to WebAssembly control-flow integrity and type
safety violations.
GHSA-7qmx-3fpx-r45m
v24.0.0
Compare Source
24.0.0
Released 2024-08-20.
Added
A new
wasmtime_engine_clone
function was added to the C API.#8907
Wasmtime now has basic support for allocating a
StructRef
in the embedderAPI.
#8933
The
wasmtime run
subcommand now support a--argv0
flag indicating thevalue of the first element to arguments reported to wasm if it shouldn't be
the default of the wasm binary name itself.
#8961
Support for Winch on AArch64 continued to improve.
#8921
#9018
#9033
#9051
An initial implementation of the
wasi-runtime-config
proposal was added toWasmtime.
#8950
#8970
#8981
Initial support for f16 and f128 in Cranelift continued to improve.
#8893
#9045
More types in
wasmtime-wasi-http
implement theDebug
trait.#8979
The
wasmtime explore
subcommand now supports exploring CLIF too.#8972
Support for SIMD in Winch has begun, but it is not complete yet.
#8990
#9006
Initial work on Pulley, an interpreter for Wasmtime, has begun.
#9008
#9013
#9014
The
-Wunknown-imports-trap
flag towasmtime run
now supports components.#9021
An initial implementation of the
wasi-keyvalue
proposal was added toWasmtime.
#8983
#9032
#9050
#9062
An
unsafe
API has been added to unload process trap handlers.#9022
The s390x backend now fully supports tail calls.
#9052
Changed
The
flags
type in the component model now has a hard limit of 32-or-fewerflags. For more information about this transition see
WebAssembly/component-model#370.
#8882
Multiple returns for functions in the component model are now gated by default
and are planned to be removed.
#8965
TCP streams in WASIp2 will now immediately return
StreamError::Closed
whenthe TCP stream is closed or shut down.
#8968
#9055
Cranelift will now perform constant propagation on some floating-point
operations.
#8954
Wasmtime and Cranelift now require at least Rust 1.78.0 to compile.
#9010
The
wasmtime::Val
type now implements theCopy
trait.#9024
Wasmtime's wasi-nn implementation has been updated to track the upstream
specification.
#9056
Names provided to
trappable_imports
inbindgen!
are now validated to beused.
#9057
Support for multi-package
*.wit
files now requires apackage ...;
headerat the top of the file.
#9053
v23.0.3
Compare Source
23.0.3
Released 2024-10-09.
Fixed
Fix a runtime crash when combining tail-calls with host imports that capture a
stack trace or trap.
GHSA-q8hx-mm92-4wvg
Fix a race condition could lead to WebAssembly control-flow integrity and type
safety violations.
GHSA-7qmx-3fpx-r45m
v23.0.2
Compare Source
23.0.2
Released 2024-08-12.
Changed
include
directory for header files with configured versions of header files.
#9102
libm
in Linux builds, whichfixes linking against musl in some cases.
#9100
v23.0.1
Compare Source
23.0.1
Released 2024-07-22.
Fixed
#8986
v23.0.0
Compare Source
23.0.0
Released 2024-07-22.
Added
Support for DWARF debugging information with native debuggers is now
implemented for components.
#8693
CLIF frontends can now define their own stack maps.
#8728
#8876
Wasmtime now supports the custom-page-sizes proposal.
#8763
This project now publishes a crate named
wasi-preview1-component-adapter-provider
which provides the WASIp1 adaptersas constants in Rust code.
#8874
Changed
Call hooks now have access to the full
StoreContextMut<T>
.#8791
Call hooks have been moved behind an off-by-default compile-time Cargo feature
named
call-hook
.#8795
#8808
Wasmtime's minimum supported Rust version is now 1.77.0.
#8796
Resumable traps have been removed from Cranelift.
#8809
Traps are not GC safepoints any more in Cranelift.
#8810
Support for Intel memory protection keys is now disabled by default at compile
time and is gated behind a Cargo feature.
#8813
Exports from components have been refactored and redesigned to support
skipping name lookups at runtime where possible.
#8786
Wasmtime's lookup of versioned component exports now takes semver into
account in the same manner as imports.
#8830
Wasmtime's guest profiler will now take samples at hostcall boundaries.
#8802
Wasmtime's pooling allocator now by default allows 32-bit linear memories to
grow to their full size of 4G.
#8849
The size of WASI adapter binaries has been optimized.
#8858
#8859
The
wasmtime-wasi-http
crate has been refactored to better match thewasmtime-wasi
crate.#8861
Support for caching
call_indirect
sites has been removed.#8881
Wasmtime's x86_64 binary releases are now based on AlmaLinux 8 instead of
CentOS 7.
#8892
Fixed
An issue with generated
.debug_loc
sections for native debuggers has beenfixed.
#8753
Wasmtime's
no_std
build for riscv64 has been fixed.#8770
A bug related to lost
Waker
instances with async stdio streams has beenfixed.
#8782
Configuration of
trappable_error_type
has been improved in Wasmtime'sbindgen!
macro.#8833
Prints to stdout/stderr without a newline now work better with
wasmtime serve
.#8877
An issue with
br_if
and stack-related state has been fixed in Winch.#8886
v22.0.1
Compare Source
22.0.1
Released 2024-10-09.
Fixed
Fix a runtime crash when combining tail-calls with host imports that capture a
stack trace or trap.
GHSA-q8hx-mm92-4wvg
Fix a race condition could lead to WebAssembly control-flow integrity and type
safety violations.
GHSA-7qmx-3fpx-r45m
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 has been generated by Renovate Bot.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.