🚀 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 302dd3e741
Add utils
5 years ago
extra Add utils 5 years ago
platforms Fix wrong header include 5 years ago
source Use rint directly 5 years ago
test
.gitignore
CMakeLists.txt
DEV.md
LICENSE
README.md

README.md

GitHub issues GitHub license

Wasm3

This is an (experimental) high performance WebAssembly interpreter written in C.

10x faster than other wasm interpreters (wasm-micro-runtime, wac, life)
5-6x slower than state of the art wasm JIT engines, like liftoff
10-15х slower than native execution
* Your mileage may vary

Status

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
  • Browsers... yes, using WebAssembly itself!
  • TODO: run on wasm3 (should be self-hosting)

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

  • Aim at Wasm 1.0 spec conformance (not there yet)
  • Lot's of bugfixes
  • Portability improvements

Building

See DEV.md