Skip to content

Releases: wasmi-labs/wasmi

v0.48.0 - 2025-07-21

21 Jul 18:22
v0.48.0
19abcfa
Compare
Choose a tag to compare

Added

  • Added Wasm reinterpret operators to wasmi_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.
  • Changed CompilationMode default to CompilationMode::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.
  • Update Wasmtime dependencies to v34. #1563

Fixed

  • Fixed a bug that f{32,64}.copysign with immediate rhs 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

30 May 16:05
v0.47.0
572b76c
Compare
Choose a tag to compare

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.

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.

v0.46.0 - 2025-05-08

08 May 13:21
v0.46.0
50ac767
Compare
Choose a tag to compare

Changed

  • Store<T>::new no longer requires T: 'static. #1507
    • The T: 'static requirement was introduced in v0.45.0 in #1449.
  • Improve host function call performance. #1506

Internal

  • Updated dependencies. #1509

v0.45.0 - 2025-05-06

06 May 11:03
v0.45.0
7c1733a
Compare
Choose a tag to compare

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.
  • Added missing wasmi_core::simd API functions for relaxed-simd. #1447
  • Added implementations for Rust's Error trait for all wasmi error types on no_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.

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.

Internal

  • Make Wasmi's executor non-generic over the Store's T. #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 (and bulk-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.
    • Re-design Wasmi's select instructions. #1497
      • This allows to use Wasmi's powerful cmp op-code fusion for select instructions.
  • Moved many wasmi internals into wasmi_core:
    • Add FuncType #1458
    • Add Fuel, Memory, Table, Global, ResourceLimiter #1464
    • Replace uses in wasmi with wasmi_core definitions. #1460

v0.44.1 - 2025-05-04

04 May 12:46
v0.44.1
825757f
Compare
Choose a tag to compare

Fixed

  • Fixed a bug with executing SIMD store_lane instructions. #1450

v0.44.0 - 2023-03-29

30 Mar 09:02
v0.44.0
dedfcee
Compare
Choose a tag to compare

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 use relaxed-simd capabilities.
    • Note that enabling the simd crate feature may regress Wasm execution and memory consumption
      performance.

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

29 Mar 16:06
v0.43.1
355c7ae
Compare
Choose a tag to compare

Fixed

  • Add missing WasmTy implementation for V128 #1437
    • This prevented using V128 parameters and results in the TypedFunc API.
    • Note that it was still possible to use V128 with the Func::call API.
  • Fixed a bug executing i8x16.replace_lane with immediate parameter. #1444

v0.43.0 - 2025-03-27

27 Mar 12:13
v0.43.0
d592fa2
Compare
Choose a tag to compare
  • 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 use simd
      only if your use case needs it.

Changed

  • Wasmi's minimum supported Rust version is now Rust 1.83. #1405

Internal

  • Move all Wasm spec tests over to the wasmi_wast crate. #1403
    • This solves a cyclic dev-dependency issue between wasmi and wasmi_wast crates.
  • Updated wasm-tools and Wasmtime dependencies. #1404

v0.42.1 - 2025-03-20

20 Mar 08:07
v0.42.1
f628a7a
Compare
Choose a tag to compare

Fixed

  • Fixed a bug in i64.mul_wide_{s,u} instruction constant evaluation. #1397

v0.42.0 - 2025-03-11

11 Mar 20:18
v0.42.0
bec7883
Compare
Choose a tag to compare

Added

  • Added support for the Wasm wide-arithmetic proposal. #1369
    • The wide-arithmetic proposal is disabled by default in wasmi
      library and enabled by default in the Wasmi CLI.

Changed

  • Optimized memory accesses with a constant ptr value. #1381

Internal

  • Update wasm-tools dependencies from v226 to v227. #1380