Skip to content

wasmi-labs/wasmi

Continuous Integration Test Coverage Documentation Crates.io
ci codecov docs crates

Wasmi - WebAssembly (Wasm) Interpreter

Wasmi is an efficient and lightweight WebAssembly interpreter with a focus on constrained and embedded systems.

Security Audits

Wasmi is suitable for safety critical use cases and has been audited several times already.

Wasmi Version(s) Auditor Contractor Report
0.36.0-0.38.0 Runtime Verification Inc. Stellar Development Foundation PDF
0.31.0 SRLabs Parity Technologies PDF

Distinct Features

  • Simple, correct and deterministic execution of WebAssembly.
  • Low-overhead and cross-platform WebAssembly runtime for embedded environments.
  • Compiler/JIT bomb resisting translation.
  • Loosely mirrors the Wasmtime API.
  • 100% WebAssembly spec testsuite compliance.
  • Built-in support for fuel metering.
  • Supports the official Wasm C-API.

Docs

WebAssembly Features

WebAssembly Proposal WebAssembly Proposal
βœ… mutable-global β‰₯ 0.14.0 βœ… custom-page-sizes β‰₯ 0.41.0
βœ… saturating-float-to-int β‰₯ 0.14.0 βœ… memory64 β‰₯ 0.41.0
βœ… sign-extension β‰₯ 0.14.0 βœ… wide-arithmetic β‰₯ 0.42.0
βœ… multi-value β‰₯ 0.14.0 βœ… simd β‰₯ 0.43.0
βœ… bulk-memory β‰₯ 0.24.0 βœ… relaxed-simd β‰₯ 0.44.0
βœ… reference-types β‰₯ 0.24.0 πŸ“… function-references Tracking Issue
βœ… tail-calls β‰₯ 0.28.0 πŸ“… gc Tracking Issue
βœ… extended-const β‰₯ 0.29.0 πŸ“… threads Tracking Issue
βœ… multi-memory β‰₯ 0.37.0 πŸ“… exception-handling Tracking Issue
Embeddings
βœ… WASI WASI (wasip1) support via the wasmi_wasi crate.
βœ… C-API Official Wasm C-API support via the wasmi_c_api_impl crate.

Used by

If you want your project on this list please inform me about you project and how Wasmi is used.

Stellar Soroban Β  Wasmer Β  Firefly Zero Β  Typst Β  Orbitinghail Β  Smoldot Β  Munal OS Β 

Sponsors

Special thanks to the past and present sponsors of the Wasmi project.

Sponsoring since Oct. 2024
Sponsored until Oct. 2024

Supported Platforms

Wasmi supports a wide variety of architectures and platforms.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.