A fast and secure runtime for WebAssembly
Released 2024-04-22.
Support for shared WebAssembly memories has been added to the C API. #7940
A Component::component_type
method has been added to reflect on the imports
and exports of a component.
#8078
The with
key in bindgen!
now supports remapping entire packages and
namespaces.
#8083
Winch now supports the component model by using Cranelift to generate trampolines. #8082 #8109
The WASI-NN backend now supports ONNX. #7691
The wasmtime
CLI now has an -S inherit-env
flag for inheriting the entire
process environment.
#8168
Winch now supports the WebAssembly memory64 proposal. #8194
Embedders can now opt-in to allowing wasmtime-wasi to block the current thread with file operations, for example. #8190
A wasmtime::CodeBuilder
type has been added to refine the configuration of
compiling a Module
or a Component
.
#8181
The wasmtime serve
subcommand now enables configuring preopened directories
and environment variables.
#8279
Support for WebAssembly GC is in the process of being implemented which has
required refactoring and reimplementing the existing gc support for
externref
. Many APIs in this area has changed, see linked PRs for more
details. Note that the wasm_*
parts of the C API no longer support
externref
.
#8011
#8196
The wasmtime::component::Val
type no longer stores type information and
instead must be interpreted in the context of a type.
#8062
The arguments required for ResourceAny::try_from_resource
have been
simplified by refactoring the internal representation.
#8061
The arguments required for wasmtime::component::Linker::func_new
have been
simplified by refactoring the internal representation.
#8070
The pooling allocator is now enabled by default with wasmtime serve
.
#8073
The error message for missing imports in has been improved with components. #7645
Wasmtime's MSRV is now 1.75.0. #8205
Wasmtime's translation of table-related instructions has improved codegen in
some common cases, especially with call_indirect
.
#8063
#8125
#8124
#8134
#8137
#8162
#8159
#8172
#8171
#8139
#8206
Book-based documentation has been reordered and refactored. #8130
The -S common
flag is renamed to -S cli
, to better reflect that it provides
the wasi-cli APIs. -S common
is still accepted for now, and will be deprecated
in the future.
#8166
The tail-call calling convention now supports callee-saved registers to improve performance and allow enabling this WebAssembly proposal by default in the future. #8246
The wasmtime-wasi
crate has been refactored to restructure some items and
documentation has been added for most items.
#8228
Support for the WebAssembly threads
proposal is now gated by an
on-by-default Cargo feature named threads
.
#8260
Borrow-checking in wiggle
has been optimized to not be as fine-grained any
more. This is a breaking change if users are relying on the ability to safely
mutably borrow disjoint regions of memory.
#8277
Connection timeouts with wasi-http
have been fixed.
#8085
Generating bindings with bindgen!
now works correctly when some WIT types
are not used.
#8065
Errors in wasi-http
are no longer accidentally returned as traps.
#8272
C API bindings now depend on wasmtime-wasi
instead of wasi-common
, and the
wasi_config_preopen_socket
function is no longer available as a result.
#8066
Released 2024-04-11
Released 2024-03-20.
C API bindings for the sampling-based profiler in Wasmtime have been added. #7854
Add the WasiP1Ctx to ease the use of wasmtime-wasi
in place of wasi-common
#8053
The Winch compiler backend is now feature-complete for x64. Note that minor issues and fuzz bugs are still being addressed, but now's a good time to test if you're interested. #7894 #7909 #7927 #7932 #7949 #7974 #8001
The typed function references proposal to WebAssembly is now fully implemented. #7943
The component::Linker
type is now "semver aware" in that it enables loading
components referring to past or future versions of interfaces so long as the
types are compatible.
#7994
Wasmtime can now be built for "custom platforms" which is intended for bare-metal builds. #7995
The wasmtime-wasi-nn
crate now has a backend based on WinML.
#7807
The wasmtime
CLI now has flags for configuring limits of the pooling
allocator.
#8027
The wasmtime serve
command no longer binds its port with SO_REUSEADDR
meaning that if it is invoked twice only one will succeed.
#7863
The sampling-based profiler in Wasmtime now takes an explicit argument of the time delta between samples. #7873
Many accessors for type information now require an &Engine
argument to be
specified in preparation for an implementation of wasm GC.
#7892
The host
header is now forbidden in wasi-http.
#7905
Stronger type-checks are now performed for host-owned resources when interacting with the component model to help catch mistakes earlier. #7902
Demangling Rust and C/C++ symbols in WebAssembly modules is now done by default in the C API. #7962
Preview2-based APIs are now located at the root of the wasmtime_wasi
crate
instead of a submodule.
#7933
Components now reserve index 0 for handle tables to match the component model specification. #7661
Support for externref
has been moved behind a new gc
Cargo feature. This
will also gate support for wasm gc in the future.
#7975
Require the WASMTIME_WASI_CONFIG_PREOPEN_SOCKET_ALLOW
environment variable
to bet set to allow the use of wasi_config_preopen_socket
via the c api, as
it will be deprecated in 20.0.0
.
#8053
Released 2024-03-12
Released 2024-02-28.
ireduce
rewrite to
unary and binary operations, leading to miscompilations.
#8005
Released 2024-02-28
ireduce
rewrite to
unary and binary operations, leading to miscompilations.
#8005