🚀 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 71eeb3c971
Fix button
5 years ago
.github/workflows Run spec tests in self-hosting mode 5 years ago
extra Fix button 5 years ago
platforms Fix windows build 5 years ago
source Detect compiler and arch 5 years ago
test Display version 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 Fix button 5 years ago

README.md

Wasm3

WAPM GitHub issues GitHub license Tests 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.

LIVE DEMO Howto use online demo.

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
  • Browsers... yes, using WebAssembly itself!
  • wasm3 can execute wasm3 (self-hosting)

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

  • Wasm 1.0 spec conformance
  • WASI support
  • Support of x86, x64, ARM, MIPS, RISC-V, Xtensa architectures

Building

See DEV.md

Testing & Fuzzing

See test/README.md

License

This project is released under The MIT License (MIT)