Releases: wasmi-labs/wasmi
Releases · wasmi-labs/wasmi
v0.48.0 - 2025-07-21
Added
- Added Wasm
reinterpret
operators towasmi_core::wasm
API.
Changed
- Marked
Module::new_streaming[_unchecked]
API deprecated. #1540- Reason for the deprecation:
- The streaming Wasm module creation is not a great fit for Wasmi's target usage.
- No users are known that depend on this functionality - please inform us if you do!
- Streaming Wasm module creating has a performance overhead when not needed.
- Reason for the deprecation:
- Changed
CompilationMode
default toCompilationMode::LazyTranslation
. #1530- With this default Wasm is still validated eagerly but tranlated to Wasmi IR lazily.
This gives the best of both worlds: fast startup times while avoiding partial validation.
- With this default Wasm is still validated eagerly but tranlated to Wasmi IR lazily.
- Update Wasmtime dependencies to v34. #1563
Fixed
- Fixed a bug that
f{32,64}.copysign
with immediaterhs
operands won't bump fuel. #1539 - Fixed incorrect optimization application for
i64.mul_wide_s
. #1545 #1546 - Fixed an
integer-overflow
that could happen when reading or writing memory. #1554
Internal
v0.47.0 - 2025-05-30
Changed
- Remove the
downcast-rs
dependency from Wasmi crates. #1517 - Bump the minimum supported Rust version (MSRV) to Rust 1.86. #1518
- This change was necessitated by the removal of
downcast-rs
.
- This change was necessitated by the removal of
Internal
- Lower
select
instructions more aggressively. #1526- This significantly reduced the number of different
select
instruction
variants and thus might have positive effects on Wasmi's execution performance.
- This significantly reduced the number of different
v0.46.0 - 2025-05-08
v0.45.0 - 2025-05-06
Added
- Added support for Wasm function call resumption after running out of fuel. #1498
- This feature is very useful when using Wasmi inside a scheduler that works with
Wasmi's fuel metering to provide amount of compute units to different Wasm execution
threads for example.
- This feature is very useful when using Wasmi inside a scheduler that works with
- Added missing
wasmi_core::simd
API functions forrelaxed-simd
. #1447 - Added implementations for Rust's
Error
trait for allwasmi
error types onno_std
. #1462
Changed
- Avoid performing duplicate type and validation checks in
Linker::instantiate
. #1476 - Updated
wasm-tools
dependencies to v228. #1463 - Removed most of
wasmi_core::TypedVal
's API. #1457- The newer
wasmi_core::wasm
API is to be preferred and provides the same functionality.
- The newer
Fixed
- Fixed a bug that Wasmi did not make
wasmparser
's parser aware of enabled Wasm features. #1502- Making
wasmparser
aware of the enabled Wasm features allows it to detect malformed Wasm
binaries during parsing.
- Making
Internal
- Make Wasmi's executor non-generic over the
Store
'sT
. #1449 - Changes to Wasmi's IR:
- Removed all conditional return instructions. #1486
- This allows Wasmi to apply its powerful cmp+branch fusion in more places.
- Remove most of the
bulk-memory
(andbulk-table
) instruction variants. #1489- Wasmi still has optimized variants for the most common cases.
- Add new logical-comparator instructions. #1494
- This further enhances Wasmi's powerful cmp+branch instruction fusion.
- Add negated
f{32,64}.{lt,le}
instructions. #1496- This allows Wasmi to apply its cmp+nez fusion for
f{32,64}.{le,lt}
instructions as well.
- This allows Wasmi to apply its cmp+nez fusion for
- Re-design Wasmi's
select
instructions. #1497- This allows to use Wasmi's powerful cmp op-code fusion for
select
instructions.
- This allows to use Wasmi's powerful cmp op-code fusion for
- Removed all conditional return instructions. #1486
- Moved many
wasmi
internals intowasmi_core
:
v0.44.1 - 2025-05-04
Fixed
- Fixed a bug with executing SIMD
store_lane
instructions. #1450
v0.44.0 - 2023-03-29
Added
- Add support for the Wasm
relaxed-simd
proposal. #1443- All
relaxed-simd
operators behave deterministically on all platforms supported by Wasmi. - Users have to enable the
simd
crate feature in order to userelaxed-simd
capabilities. - Note that enabling the
simd
crate feature may regress Wasm execution and memory consumption
performance.
- All
Changed
- Wasmi's CLI now prints multiple results on a new line each. #1438
- With this change Wasmi's CLI and Wasmtime's CLI have the same behavior.
v0.43.1 - 2025-03-29
v0.43.0 - 2025-03-27
- Added support for the Wasm
simd
proposal. #1364- Users have to opt-in to use this feature by enabling Wasmi's
simd
crate feature. - Note: enabling
simd
may introduce Wasm execution overhead, increase memory consumption
increase compiled artifact size and compile times for Wasmi crates. So usesimd
only if your use case needs it.
- Users have to opt-in to use this feature by enabling Wasmi's
Changed
- Wasmi's minimum supported Rust version is now Rust 1.83. #1405
Internal
v0.42.1 - 2025-03-20
Fixed
- Fixed a bug in
i64.mul_wide_{s,u}
instruction constant evaluation. #1397
v0.42.0 - 2025-03-11
Added
- Added support for the Wasm
wide-arithmetic
proposal. #1369- The
wide-arithmetic
proposal is disabled by default inwasmi
library and enabled by default in the Wasmi CLI.
- The
Changed
- Optimized memory accesses with a constant
ptr
value. #1381
Internal
- Update
wasm-tools
dependencies from v226 to v227. #1380