Skip to content
/ wasm3 Public
forked from wasm3/wasm3

A high performance WebAssembly interpreter

License

Notifications You must be signed in to change notification settings

pollend/wasm3

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wasm3

GitHub issues GitHub license

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

WebAssembly Core Specification conformance: 94%

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
  • WASI support
  • Portability

Building

See DEV.md

License

This project is released under The MIT License (MIT)

About

A high performance WebAssembly interpreter

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 70.9%
  • HTML 16.0%
  • C++ 7.5%
  • Python 2.2%
  • Makefile 1.5%
  • CMake 0.7%
  • Other 1.2%