Skip to content

๐Ÿš€ The fastest WebAssembly interpreter

License

Notifications You must be signed in to change notification settings

shaunstanislauslau/wasm3

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Wasm3

WAPM GitHub issues Tests status GitHub license

A high performance WebAssembly interpreter written in C.

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

Getting Started

Here's an online demo and a small getting started guide:

LIVE 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 runs on a wide range of platforms:

  • Linux, Windows, OS X
  • Android, iOS
  • OpenWRT-enabled routers
  • 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), ATmega1284 etc.
  • 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

Performance

See PERFORMANCE.md

License

This project is released under The MIT License (MIT)

About

๐Ÿš€ The fastest WebAssembly interpreter

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 68.0%
  • Objective-C 10.2%
  • HTML 9.4%
  • C++ 7.6%
  • Python 2.3%
  • Makefile 0.8%
  • Other 1.7%