Skip to content

Releases: wasmi-labs/wasmi

v0.46.0 - 2025-05-08

08 May 13:21
v0.46.0
50ac767

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

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

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

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

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

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

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

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

v0.41.1 - 2025-03-11

11 Mar 18:33
v0.41.1
f946ccf

Choose a tag to compare

Fixed

  • Fixed a Wasmi CLI crash when using .wat formatted Wasm files. #1385
  • Fixed a crash when translating memory.grow with an i64.const delta parameter. #1384
    • Note: this can only occur when using the Wasm memory64 proposal.

v0.41.0 - 2025-03-10

10 Mar 13:37
v0.41.0
7188f7f

Choose a tag to compare

Added

  • Added support for the Wasm memory64 proposal. #1371
    • The memory64 proposal is enabled by default in wasmi and the Wasmi CLI.
  • Added support for the Wasm custom-page-sizes proposal. #1349
    • The custom-page-sizes proposal is enabled by default in wasmi and the Wasmi CLI.
  • Added support to for Wat inputs in Module::new and Module::new_unchecked. #1328
    • There deliberately is no Wat support in Module::new_streaming since Wat cannot be stream compiled.

Fixed

  • Fixed a bug that could lead to crashes when tail calling host functions. #1329
  • Fixed a bug that no_mange and export_name where used at the same time. #1337

Changed

  • Bumped Minimum Support Rust Version to v1.82. #1375
  • The memory.grow and table.grow instructions now trap instead of panic when out of system memory.
    • This change was part of the changes introduced by the support
      for the Wasm memory64 and custom-page-sizes proposals.

Internal

  • No longer use libm default features. #1322
  • Implemented several improvements to our fuzzing infrastructure:
    • Significantly improved Wasmtime translation (JIT) times. #1339
    • Improve debug output of fuzzers. #1344
    • Differential fuzzer now uses fuzz input to randomize function parameters. #1348
    • Allow fuzzing the Wasm custom-page-sizes proposal implementation. #1354
    • Allow fuzzing the Wasm memory64 proposal implementation. #1379
  • Update the Wasm spec testsuite. #1361
  • Update wasm-tools dependencies to v226. #1374
  • Update to string-interner v0.19. #1367