Wasmtime Versions Save

A fast and secure runtime for WebAssembly

v20.0.1

1 day ago

20.0.1

Released 2024-05-03.

Added

  • Make the c-api CMakeLists.txt easier to import. #8496

v20.0.0

1 week ago

20.0.0

Released 2024-04-22.

Added

  • 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

Changed

  • 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

Fixed

  • 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

v17.0.3

3 weeks ago

17.0.3

Released 2024-04-11

Fixed

  • cranelift: Include clobbers and outgoing args in stack limit. #8334

v19.0.2

3 weeks ago

19.0.2

Released 2024-04-11.

  • Fix a panic when compiling invalid components. #8322

  • Fix bindgen! with trappable_error_type using unversioned/versioned packages. #8305

  • cranelift: Include clobbers and outgoing args in stack limit. #8334

v18.0.4

3 weeks ago

18.0.4

Released 2024-04-11

Fixed

  • Fix bindgen! with trappable_error_type using unversioned/versioned packages. #8305

  • cranelift: Include clobbers and outgoing args in stack limit. #8334

  • Fix a panic when compiling invalid components. #8322

v19.0.1

1 month ago

19.0.1

Released 2024-04-02.

  • Fix a panic using tables with the wrong type. #8284

v19.0.0

1 month ago

19.0.0

Released 2024-03-20.

Added

  • 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

Changed

  • 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

Fixed

  • WIT interface names that are Rust keywords now correctly generate bindings. #7790

  • PKRU state is now restored across await points. #7789

  • Wasmtime now correctly supports global.get in all constant expressions within a module. #7996

v18.0.3

1 month ago

18.0.3

Released 2024-03-12

Fixed

v18.0.2

2 months ago

18.0.2

Released 2024-02-28.

Fixed

  • Fix an egraph rule bug that was permitting an incorrect ireduce rewrite to unary and binary operations, leading to miscompilations. #8005

v17.0.2

2 months ago

17.0.2

Released 2024-02-28

Fixed

  • Fix an egraph rule bug that was permitting an incorrect ireduce rewrite to unary and binary operations, leading to miscompilations. #8005