// the find
explodingcamera/tinywasm
A Tiny Webassembly Runtime Written in Rust
A WebAssembly interpreter written in Rust, designed to run in constrained environments including no_std targets. Passes both MVP and 2.0 core test suites, ships its own internal bytecode format (twasm) for faster module loading, and can itself compile to Wasm. Aimed at developers who need to embed a Wasm runtime without pulling in the weight of Wasmtime or Wasmer.
Full no_std + alloc support with minimal dependencies — the three mandatory ones are core, alloc, and libm, which means it actually fits on microcontrollers. The proposal coverage for 0.9 is surprisingly wide: SIMD, Memory64, Tail Calls, Relaxed SIMD, and Multi-memory are all green. The twasm intermediate format is a practical idea: validate once, serialize, reload fast — useful for resource-constrained devices that can't afford repeated parse+validate overhead. Test infrastructure is solid: per-proposal CSV result files and a separate wast runner make it easy to see exactly where compliance stands.
The three proposals that matter most for running real-world toolchain output — Exception Handling, Typed Function References, and GC — are all unimplemented, which means anything compiled from a recent Kotlin, Dart, or component-model-aware toolchain simply won't run. No threads support either, so you can't run Wasm binaries that assume shared memory. The twasm format explicitly warns it treats malformed input as panic-worthy rather than an error, which is a footgun if you're loading from any untrusted source or across a version boundary. At 568 stars it's underexplored relative to wasmi, so expect to hit edge cases that don't have open issues yet.