Skip to content

Latest commit

 

History

History
62 lines (43 loc) · 3.85 KB

File metadata and controls

62 lines (43 loc) · 3.85 KB

wasm-interpreter

Website  •  Features  •  Resources

ci status code coverage license license

A minimal in-place interpreter for WebAssembly bytecode (almost without) dependencies while being no_std.

Features

  • In-place interpretation: No intermediate representation, directly interprets WebAssembly bytecode. This allows for fast start-up times.
  • no_std support: The interpreter requires only Rust's core and alloc libraries 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 GlobalConfig in tests/specification/mod.rs for 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.

Planned

  • 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.

Not planned

Multi-memory proposal, GC proposal

Resources

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.

Copyright

Copyright © 2024-2025 Deutsches Zentrum für Luft- und Raumfahrt e.V. (DLR) Copyright © 2024-2025 OxidOS Automotive SRL