Website • Features • Resources
A minimal in-place interpreter for WebAssembly bytecode (almost without) dependencies while being no_std.
- In-place interpretation: No intermediate representation, directly interprets WebAssembly bytecode. This allows for fast start-up times.
no_stdsupport: The interpreter requires only Rust'scoreandalloclibraries allowing its use in various environments, such as bare-metal systems.- Minimal dependencies: The interpreter requires only two dependencies:
log,libm. - Compliance with specification: The interpreter passes all tests from the official WebAssembly testsuite, except for the unfinished proposal tests. See
GlobalConfigintests/specification/mod.rsfor the default spec-test filter regex. - Returning host functions: The host system can provide functions for Wasm code to call. Contrary to other Wasm runtimes, host functions are not owned by the interpreter. Instead control flow is returned back to the user, when Wasm code calls a host function.
- Fuel & resumable execution: A fuel mechanism is used to halt execution once fuel runs out. Then fuel can be refilled and execution resumed.
For information on other features, visit our requirements page.
- C bindings: The interpreter can be used from C code.
- Migratability: Wasm instances can be transferred between systems during their execution.
- Threading: There are multiple threading proposals, but we have not yet chosen a specific one. Some options are shared-everything-threads, threads, wasi-threads.
Multi-memory proposal, GC proposal
A fast in-place interpreterby Ben L. Titzer: https://arxiv.org/abs/2205.01183- WebAssembly spec: https://webassembly.github.io/spec/core/index.html
- WebAssembly Opcode Table: https://pengowray.github.io/wasm-ops/
- Compiler/Interpreter Know-How Gist Compilation: https://gist.github.com/o11c/6b08643335388bbab0228db763f99219
- Mozilla Developer Network WebAssembly Homepage: https://developer.mozilla.org/en-US/docs/WebAssembly
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
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.
Copyright © 2024-2025 Deutsches Zentrum für Luft- und Raumfahrt e.V. (DLR) Copyright © 2024-2025 OxidOS Automotive SRL