🚀 A fast WebAssembly interpreter and the most universal WASM runtime
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Go to file
Volodymyr Shymanskyy f535086412
Run spec tests in self-hosting mode
5 years ago
.github/workflows Run spec tests in self-hosting mode 5 years ago
extra Move disasm-func.sh 5 years ago
platforms Implement string escaping -> enable names.wast test 5 years ago
source Convert addresses to u64 to handle pointer overflow on 32-bit systems 5 years ago
test Cleanup 5 years ago
.gitignore Ignore source copies 5 years ago
CMakeLists.txt Fix Win32 stack size 5 years ago
DEV.md Create README for tests 5 years ago
LICENSE Update LICENSE 5 years ago
README.md Update README.md 5 years ago

README.md

Wasm3

GitHub issues GitHub license CI status

A high performance WebAssembly interpreter written in C.

13.5x faster than other wasm interpreters (wac, life, wasm-micro-runtime)
5..6x slower than state of the art wasm JIT engines (liftoff, cranelift)
12.5x slower than native execution
* Based on CoreMark 1.0 benchmark. Your mileage may vary.

Status

wasm3 passes the WebAssembly spec testsuite and is able to run many WASI apps.

Minimum useful system requirements: ~64Kb for code and ~10Kb RAM

wasm3 currently runs on a wide range of platforms:

  • Linux, Windows, OS X
  • Android
  • Raspberry Pi, Orange Pi and other SBCs
  • MCUs:
    Arduino MKR*, Arduino Due, Particle Photon,
    ESP8266, ESP32, Air602 (W600), nRF52, nRF51,
    Blue Pill (STM32F103C8T6), MXChip AZ3166 (EMW3166),
    Maix (K210), HiFive1 (E310), Fomu (ICE40UP5K), etc.
  • OpenWRT-enabled routers (ARM, MIPS)
  • Browsers... yes, using WebAssembly itself!
  • wasm3 can execute wasm3 (self-hosting)

wasm3 is built on top of Steven Massey's novel interpreter topology, with:

  • Aim at Wasm 1.0 spec conformance
  • WASI support
  • Portability

Building

See DEV.md

Testing & Fuzzing

See test/README.md

License

This project is released under The MIT License (MIT)