NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3605 most downloaded on crates.io
Base compiler abstraction for Wasmer WebAssembly runtime
Last release 4 days ago
01 Oct 2026
Ships fairly regularly
a new release about every 2 weeks
Some releases are documented
notes for 17 of 58 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
112 releases · first in 2020
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
### Added - #2862 Added CI builds for linux-aarch64 target. - #2811 Added support for EH Frames in singlepass - #2851 Allow Wasmer to compile to Wasm/
wasmer-cli: remove wasi-experimental-io-devices from default builds### Fixed - #2812 Fixed another panic due to incorrect drop ordering.
### Added - #2775 Added support for SSE 4.2 in the Singlepass compiler as an alternative to AVX. - #2805 Enabled WASI experimental I/O devices by defa
### Fixed - #2778 Fixed f32_load/f64_load in Singlepass. Also fixed issues with out-of-range conditional branches. - #2786 Fixed a potential integer o
### Added - #2750 Added Aarch64 support to Singlepass (both Linux and macOS). - #2753 Re-add "dylib" to the list of default features. ### Changed - #2
wasmer binfmt register from $PATH.### Added - #2726 Added externs_vec method to ImportObject. - #2724 Added access to the raw Instance JS object in Wsasmer-js. ### CHanged - #2711 Make
### Added - #2574 Added Windows support to Singlepass. - #2535 Added iOS support for Wasmer. This relies on the dylib-engine. - #2460 Wasmer can now c
dylib-engine.wasm-bindgen. Use the js-default (and no default features) feature to try it!.ImportObject::get_namespace_exports to allow modifying the contents of an existing namespace in an ImportObject.ImportObject to be extended with a JS object.wasmer API usage with no-default-features requires now the sys feature to preserve old behavior.ModuleInfoTranslate from wasmer-compiler.WasmPtr, added WasmCell for host/guest interaction. WasmPtr::deref will now return WasmCell<'a, T> instead of &'a Cell<T>, WasmPtr::deref_mut is now deleted from the API.loupe to 0.1.3.Send and Sync to uses of the LikeNamespace trait object.WasmerEnv when aliasing Result.WasmerEnv access when using call_indirect with the Singlepass compiler.wasmer validate error message on non-wasm inputs.WASMER_CACHE_DIR for Windows.wax script generation.ENOENT instead of EINVAL in some WASI syscalls for a non-existent fileWASMER_CACHE_DIR on Windows.Result in derive.--dir and --mapdir.__WASI_RIGHT_FD_DATASYNC for preopened directoriesVecAssembler.### Added - #2411 Extract types from wasi to a new wasi-types crate. - #2390 Make wasmer-vm to compile on Windows 32bits. - #2402 Add more examples an
wasi to a new wasi-types crate.wasmer-vm to compile on Windows 32bits.wasmer-middlewares.README.md.### Fixed - #2383 Fix bugs in the Wasmer CLI tool with the way --version and the name of the CLI tool itself were printed.
--version and the name of the CLI tool itself were printed.### Added - #2348 Make Wasmer available on aarch64-linux-android. - #2315 Make the Cranelift compiler working with the Native engine. - #2306 Add supp
aarch64-linux-android.rkyv for the JIT/Universal engine.rkyv to read native Module artifact.lib and include files as for macOS and Linux.ENABLE_{{compiler_name}}=(0|1) to resp. force to disable or enable a compiler when running the Makefile, e.g. ENABLE_LLVM=1 make build-wasmer.libwasmer comes with all available compilers per target instead of Cranelift only.--backend option in the CLI.wasmer-wasi crate.deprecated features and associated code in the wasmer crate.wasmer-engine-object-file to wasmer-engine-staticlib.wasmer-engine-native to wasmer-engine-dylib.wasmer-engine-jit to wasmer-engine-universal.HeapSetterOutOfBounds and TableSetterOutOfBounds were removed from wasmer_vm::TrapCode and the numbering of the remaining variants has been adjusted.Memory::ty trait method now returns MemoryType by value. wasmer_vm::LinearMemory now recomputes MemoryType's minimum field when accessing its type. This behavior is what's expected by the latest spectests. wasmer::Memory::ty has also been updated to follow suit, it now returns MemoryType by value.goblin crate by the object crate.wasmer_vm crate to remove unnecessary structs, reuse data when available etc.--allow-multiple-wasi-versions to suppress the warning and use --deny-multiple-wasi-versions to make it an error.loupe::MemoryUsage for wasmer::Instance.loupe::MemoryUsage for wasmer::Module.loupe::MemoryUsage for wasmer::Store.cranelift-entity.wasmer.dll shared library by statically compiling CRT.wasmer-engine-native looks for clang-11 instead of clang-10.WasmPtrEmEnv.i64.rotr X 0 in the LLVM compiler.wasmer config --pkg-config are now correct.### Added - #2053 Implement the non-standard wasi_get_unordered_imports function in the C API. - #2072 Add wasm_config_set_target, along with wasm_tar
wasi_get_unordered_imports function in the C API.wasm_config_set_target, along with wasm_target_t, wasm_triple_t and wasm_cpu_features_t in the unstable C API.stdout and stderr with WASI in the C API.InstanceHandle::vmoffsets to expose the offsets of the vmctx region.RuntimeError, if it's a Trap.wasm_config_delete to the Wasm C API.wasi_env_set_instance and wasi_env_set_memory as deprecated. You may simply remove the calls with no side-effect.enumset crate instead of wasmer_enumsetwasi_env_t needs to be freed with wasi_env_delete in the C API.include/README.md in the Wasmer package.wasmer run.wasi_env_read_stdout or _stderr in the C API.This release includes a breaking change in the API (changing the trait enumset::EnumsetType to wasmer_enumset::EnumSetType and changing enumset::EnumS…
This release includes a breaking change in the API (changing the trait enumset::EnumsetType to wasmer_enumset::EnumSetType and changing enumset::EnumSet in signatures to wasmer_enumset::EnumSet to work around a breaking change introduced by syn) but is being released as a minor version because 1.0.0 is also in a broken state due to a breaking change introduced by syn which affects enumset and thus wasmer.
This change is unlikely to affect any users of wasmer, but if it does please change uses of the enumset crate to the wasmer_enumset crate where possible.
wasmer called wasmer-headless will now be included with releases. wasmer-headless is the wasmer VM without any compilers attached, so it can only run precompiled Wasm modules.alias and optional to WasmerEnv derive's export attribute.wasmer_enumset, a fork of the enumset crate to work around a breaking change in syn### Added - #1969 Added D integration to the README ### Changed - #1979 WasmPtr::get_utf8_string was renamed to WasmPtr::get_utf8_str and made unsafe.
WasmPtr::get_utf8_string was renamed to WasmPtr::get_utf8_str and made unsafe.WasmPtr::get_utf8_string now returns a String, fixing a soundness issue in certain circumstances. The old functionality is available under a new unsafe function, WasmPtr::get_utf8_str.### Added * #1894 Added exports wasmer::{CraneliftOptLevel, LLVMOptLevel} to allow using Cranelift::opt_level and LLVM::opt_level directly via the was
wasmer::{CraneliftOptLevel, LLVMOptLevel} to allow using Cranelift::opt_level and LLVM::opt_level directly via the wasmer crateget_remaining_points/set_remaining_points of the Metering middleware into free functions to allow using them in an ahead-of-time compilation setupjit as a default feature of the wasmer-wasm-c-api crateWasmerEnv to be Send + Sync even in dynamic functions.to_wasm_error in favour of impl From<BinaryReaderError> for WasmErrorwasmparser::Result<()> with Result<(), MiddlewareError> in middleware, allowing implementors to return errors in FunctionMiddleware::feed### Added * #1916 Add the WASMER_VERSION* constants with the wasmer_version* functions in the Wasmer C API * #1867 Added Metering::get_remaining_point
WASMER_VERSION* constants with the wasmer_version* functions in the Wasmer C APIMetering::get_remaining_points and Metering::set_remaining_pointsUnsupportedTarget error to CompileErrorTryFrom<Value<T>> for i32/u32/i64/u64/f32/f64Engine::deserialize_from_file to speed up artifact loadingFunction::new and Function::new_with_env to accept owned and reference FunctionType as well as array pairs. This allows users to define signatures as constants. Implemented From<([Type; $N], [Type; $M])> for FunctionType to support this.WasmerEnv also implement Send, Sync, and Clone.CompilerConfig to be owned (following wasm-c-api)wasmer::Tunables to wasmer::BaseTunables. Export trait wasmer_engine::Tunables as wasmer::Tunables.TryFrom<Bytes> for Pages instead of From<Bytes> for Pages to properly handle overflow errors### Added - #1839 Added support for Metering Middleware - #1837 It is now possible to use exports of an Instance even after the Instance has been free
Instance even after the Instance has been freedarm64-apple-darwin)WasmerEnv proc macro.WasmerEnv trait. You can implement it on your existing type with #[derive(WasmerEnv)].WasiEnv::state_mut: prefer WasiEnv::state instead.& instead of &mut. This is a breaking change. This change fixes a race condition when a host function is called from multiple threads. If you need mutability in your environment, consider using std::sync::Mutex or other synchronization primitives.state field of WasiEnv publicwat2wasm in the C API, the function now takes its output parameter by pointer rather than returning an allocated wasm_byte_vec_t.path_rename allowing renamed files to be 1 directory below a preopened directory.### Added - #1761 Implement the wasm_trap_t argument of wasm_instance_new in the Wasm C API. - #1687 Add basic table example; fix ownership of local m
wasm_trap_t** argument of wasm_instance_new in the Wasm C API.wasm_trap_t inside a function declared with wasm_func_new_with_env in the Wasm C API.wasm_memory_type in the Wasm C API.wasm_global_type in the Wasm C API.wasm.h to its latest version.wasm_exporttype_delete in the Wasm C API.wasm_func_type in the Wasm C API.wasm_module_serialize in the Wasm C API.wasm_module_name and wasm_module_set_name in the Wasm(er) C API.wasm_externtype_copy in the Wasm C API.wasm_func_call in the Wasm C API.wasmer create-exe subcommand.NativeFunc.= sign in a WASI environment variable value.### Added - #1635 Implement wat2wasm in the Wasm C API. - #1636 Implement wasm_module_validate in the Wasm C API. - #1657 Implement wasm_trap_t and wa
wat2wasm in the Wasm C API.wasm_module_validate in the Wasm C API.wasm_trap_t and wasm_frame_t for Wasm C API; add examples in Rust and C of exiting early with a host function.wasm_memorytype_limits where min and max represents pages, not bytes. Additionally, fixes the max limit sentinel value./ from working properly.### Fixed - #1620 Fix bug causing the Wapm binary to not be packaged with the release - #1619 Improve error message in engine-native when C compiler i
### Added - #1566 Add support for opening special Unix files to the WASI FS ### Fixed - #1602 Fix panic when calling host functions with negative numb
- Wasmer refactor lands
Your coding agent can read these notes before it upgrades. Set up the MCP server →