## 39.0.2
Released 2026-01-14.
### Fixed
* A possible stack overflow in the x64 backend with `cmp` emission has been
fixed.
[#12333](https://github.com/bytecodealliance/wasmtime/pull/12333)
--------------------------------------------------------------------------------
## 39.0.1
Released 2025-11-24.
### Fixed
* Compiling the `debug` feature without the `gc` feature enabled has been fixed.
[#12074](https://github.com/bytecodealliance/wasmtime/pull/12074)
--------------------------------------------------------------------------------
## 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](https://github.com/bytecodealliance/wasmtime/pull/11768)
[#11769](https://github.com/bytecodealliance/wasmtime/pull/11769)
[#11873](https://github.com/bytecodealliance/wasmtime/pull/11873)
[#11892](https://github.com/bytecodealliance/wasmtime/pull/11892)
[#11895](https://github.com/bytecodealliance/wasmtime/pull/11895)
* The pooling allocator now exposes more metrics about unused slots.
[#11789](https://github.com/bytecodealliance/wasmtime/pull/11789)
* The [Wizer] and [component-init] projects have been merged into Wasmtime under
a new `wasmtime wizer` CLI subcommand and `wasmtime-wizer` crate. This is
mostly a drop-in replacement for both with a minor caveat that the
initialization function is now called `wizer-initialize` instead of
`wizer.initialize` to be compatible with components.
[#11805](https://github.com/bytecodealliance/wasmtime/pull/11805)
[#11851](https://github.com/bytecodealliance/wasmtime/pull/11851)
[#11853](https://github.com/bytecodealliance/wasmtime/pull/11853)
[#11855](https://github.com/bytecodealliance/wasmtime/pull/11855)
[#11857](https://github.com/bytecodealliance/wasmtime/pull/11857)
[#11863](https://github.com/bytecodealliance/wasmtime/pull/11863)
[#11866](https://github.com/bytecodealliance/wasmtime/pull/11866)
[#11867](https://github.com/bytecodealliance/wasmtime/pull/11867)
[#11877](https://github.com/bytecodealliance/wasmtime/pull/11877)
[#11876](https://github.com/bytecodealliance/wasmtime/pull/11876)
[#11878](https://github.com/bytecodealliance/wasmtime/pull/11878)
[#11891](https://github.com/bytecodealliance/wasmtime/pull/11891)
[#11897](https://github.com/bytecodealliance/wasmtime/pull/11897)
[#11898](https://github.com/bytecodealliance/wasmtime/pull/11898)
[Wizer]: https://github.com/bytecodealliance/wizer
[component-init]: https://github.com/dicej/component-init
* The `Config::wasm_feature` method is now public.
[#11812](https://github.com/bytecodealliance/wasmtime/pull/11812)
* Enabling the wasm exceptions proposal is now exposed in the C API.
[#11861](https://github.com/bytecodealliance/wasmtime/pull/11861)
* The `wasmtime` crate now has a `custom-sync-primitives` Cargo feature which
enables using custom synchronization primitives defined by the embedder. This
is useful in `no_std` targets where the default panic-on-contention primitives
are not appropriate.
[#11836](https://github.com/bytecodealliance/wasmtime/pull/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](https://github.com/bytecodealliance/wasmtime/pull/11825)
[#11918](https://github.com/bytecodealliance/wasmtime/pull/11918)
* The `signals_based_traps` configuration option is now exposed in the C API.
[#11879](https://github.com/bytecodealliance/wasmtime/pull/11879)
* A new `EqRef::from_i31` function has been added.
[#11884](https://github.com/bytecodealliance/wasmtime/pull/11884)
* The `wasmtime serve` subcommand will, by default, now reuse instances when
used 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](https://github.com/bytecodealliance/wasmtime/pull/11807)
* The C++ API for components has been filled out and implemented.
[#11880](https://github.com/bytecodealliance/wasmtime/pull/11880)
[#11889](https://github.com/bytecodealliance/wasmtime/pull/11889)
[#11988](https://github.com/bytecodealliance/wasmtime/pull/11988)
* A new `ResourceDynamic` type, similar to `Resource<T>`, has been added to
support 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](https://github.com/bytecodealliance/wasmtime/pull/11885)
[#11920](https://github.com/bytecodealliance/wasmtime/pull/11920)
* The C/C++ API of Wasmtime now supports the custom-page-sizes wasm proposal.
[#11890](https://github.com/bytecodealliance/wasmtime/pull/11890)
* Initial support has been added for the cooperative multithreading component
model proposal in Wasmtime, built on async primitives.
[#11751](https://github.com/bytecodealliance/wasmtime/pull/11751)
* The `epoch_deadline_callback` Rust API has been bound in C++.
[#11945](https://github.com/bytecodealliance/wasmtime/pull/11945)
* A new `Request::into_http` helper has been added to the WASIp3 implementation
of `wasi:http`.
[#11843](https://github.com/bytecodealliance/wasmtime/pull/11843)
* A `define_unknown_imports_as_traps` function has been added to the C API.
[#11962](https://github.com/bytecodealliance/wasmtime/pull/11962)
* A callback-based implementation of `stdout` and `stderr` has been added to the
C API for WASI configuration.
[#11965](https://github.com/bytecodealliance/wasmtime/pull/11965)
### Changed
* Running async functions in the component model now operates at the
`Store`-level of abstraction rather than an `Instance`.
[#11796](https://github.com/bytecodealliance/wasmtime/pull/11796)
* The `wasmtime serve` subcommand no longer mistakenly spawns an epoch thread
per-request and instead uses a single epoch thread.
[#11817](https://github.com/bytecodealliance/wasmtime/pull/11817)
* The `component-model-async` Cargo feature is now on-by-default. Note that it
is still gated at runtime by default. Also note that Wasmtime 39 does not include
[#12031](https://github.com/bytecodealliance/wasmtime/pull/12031) which means
that components using async produced with the latest `wasm-tools` will not run
in Wasmtime 39. To run async components it's recommended to pin to a
historical version of `wasm-tools` and guest toolchains for now.
[#11822](https://github.com/bytecodealliance/wasmtime/pull/11822)
* Bindings generated by `wiggle` no longer use `async_trait`.
[#11839](https://github.com/bytecodealliance/wasmtime/pull/11839)
* Wasmtime's documentation now has an example of a plugin system using Wasmtime.
[#11848](https://github.com/bytecodealliance/wasmtime/pull/11848)
* Profiling with perfmap or jitdump now uses `O_APPEND` to be more amenable to
other engines in the same process also using perfmap/jitdump.
[#11865](https://github.com/bytecodealliance/wasmtime/pull/11865)
* The `wasmtime-wasi-http` crate now uses `UnsyncBoxBody` to clarify that `Sync`
is not required.
[#11941](https://github.com/bytecodealliance/wasmtime/pull/11941)
* A `.` character is now used instead of `/` int he `bindgen!` macro to separate
interface members.
[#11947](https://github.com/bytecodealliance/wasmtime/pull/11947)
* The `func_new` function for component linkers now provides the type to the
callee so it knows the type that the component that imported it is using.
[#11944](https://github.com/bytecodealliance/wasmtime/pull/11944)
* The `component::Func` type now has a type accessor and the old params/result
accessors were deleted.
[#11943](https://github.com/bytecodealliance/wasmtime/pull/11943)
* Wasmtime now requires Rust 1.89.0 or later to compile.
[#11959](https://github.com/bytecodealliance/wasmtime/pull/11959)
### Fixed
* Some panics handling shapes of components with resources in various locations
has been fixed.
[#11798](https://github.com/bytecodealliance/wasmtime/pull/11798)
* Bitwise float operations in Cranelift have been fixed on aarch64.
[#11811](https://github.com/bytecodealliance/wasmtime/pull/11811)
* An off-by-one in the bounds check of wasm atomic operations has been fixed.
[#11977](https://github.com/bytecodealliance/wasmtime/pull/11977)
* Bounds-check elision now happens again with 4 GiB guard pages.
[#11973](https://github.com/bytecodealliance/wasmtime/pull/11973)
--------------------------------------------------------------------------------
Release notes for previous releases of Wasmtime can be found on the respective
release branches of the Wasmtime repository.
* [38.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-38.0.0/RELEASES.md)
* [37.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-37.0.0/RELEASES.md)
* [36.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-36.0.0/RELEASES.md)
* [35.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-35.0.0/RELEASES.md)
* [34.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-34.0.0/RELEASES.md)
* [33.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-33.0.0/RELEASES.md)
* [32.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-32.0.0/RELEASES.md)
* [31.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-31.0.0/RELEASES.md)
* [30.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-30.0.0/RELEASES.md)
* [29.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-29.0.0/RELEASES.md)
* [28.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-28.0.0/RELEASES.md)
* [27.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-27.0.0/RELEASES.md)
* [26.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-26.0.0/RELEASES.md)
* [25.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-25.0.0/RELEASES.md)
* [24.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-24.0.0/RELEASES.md)
* [23.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-23.0.0/RELEASES.md)
* [22.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-22.0.0/RELEASES.md)
* [21.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-21.0.0/RELEASES.md)
* [20.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-20.0.0/RELEASES.md)
* [19.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-19.0.0/RELEASES.md)
* [18.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-18.0.0/RELEASES.md)
* [17.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-17.0.0/RELEASES.md)
* [16.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-16.0.0/RELEASES.md)
* [15.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-15.0.0/RELEASES.md)
* [14.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-14.0.0/RELEASES.md)
* [13.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-13.0.0/RELEASES.md)
* [12.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-12.0.0/RELEASES.md)
* [11.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-11.0.0/RELEASES.md)
* [10.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-10.0.0/RELEASES.md)
* [9.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-9.0.0/RELEASES.md)
* [8.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-8.0.0/RELEASES.md)
* [7.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-7.0.0/RELEASES.md)
* [6.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-6.0.0/RELEASES.md)
* [5.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-5.0.0/RELEASES.md)
* [4.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-4.0.0/RELEASES.md)
* [3.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-3.0.0/RELEASES.md)
* [2.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-2.0.0/RELEASES.md)
* [1.0.x](https://github.com/bytecodealliance/wasmtime/blob/release-1.0.0/RELEASES.md)
* [0.40.x](https://github.com/bytecodealliance/wasmtime/blob/release-0.40.0/RELEASES.md)
* [0.39.x](https://github.com/bytecodealliance/wasmtime/blob/release-0.39.0/RELEASES.md)
* [0.38.x](https://github.com/bytecodealliance/wasmtime/blob/release-0.38.0/RELEASES.md)
* [0.37.x](https://github.com/bytecodealliance/wasmtime/blob/release-0.37.0/RELEASES.md)
* [0.36.x](https://github.com/bytecodealliance/wasmtime/blob/release-0.36.0/RELEASES.md)
* [0.35.x](https://github.com/bytecodealliance/wasmtime/blob/release-0.35.0/RELEASES.md)
* [0.34.x](https://github.com/bytecodealliance/wasmtime/blob/release-0.34.0/RELEASES.md)
* [0.33.x](https://github.com/bytecodealliance/wasmtime/blob/release-0.33.0/RELEASES.md)
* [0.32.x (and prior)](https://github.com/bytecodealliance/wasmtime/blob/release-0.32.0/RELEASES.md)