Awesome WebAssembly Runtimes
This repo contains a list of virtual machines and tools that execute the WebAssembly(wasm) format and/or compile it to executable machine code
Legend
CONTENTS
- CMM of Wasm
๐ด - EOSVM
๐ - FDVM
๐ด - Fizzy
๐ - GraalWASM
๐ - Happy New Moon With Report
๐ - inNative
๐ - Life
๐ - Lucet
๐ - wasm3
๐ - Motor
๐ด - py-wasm
๐ - Serverless Wasm
๐ด - Swam
๐ - VMIR
๐ด - wac
๐ - Wagon
๐ - WAKit
๐ - Warpy
๐ - Wasmer
๐ - Wasmo
๐ด - WasmRT
๐ด - Wasmtime
๐ - WasmVM
๐ - WasmVM
๐ - WAVM
๐ - WebAssembly
๐ด - WebAssembly Micro Runtime
๐ - TWVM
๐ - SSVM
๐
CMM of Wasm topโ
A compiler from WebAssembly to native code, via the OCaml backend.
-
Languages written in
OCaml -
Compiler framework
OCaml Compiler -
Compilation / Execution modes
AOT -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS
EOSVM topโ
EOS VM is designed from the ground up for the high demands of blockchain applications which require far more from a WebAssembly engine than those designed for web browsers or standards development.
-
Languages written in
C++ -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
FDVM topโ
WASM runtime to develop server-side WebAssembly applications.
-
Languages written in
JavaScript -
Compiler framework
NodeJS(V8) -
Compilation / Execution modes
JIT -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
Fizzy topโ
Fizzy aims to be a fast, deterministic, and pedantic WebAssembly interpreter written in C++.
-
Languages written in
C++ -
Compiler framework
N/A
-
Compilation / Execution modes
Interpreter -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
WASI -
Non-web standards
WASI -
Used by
N/A
-
Platforms supported
Linux macOS
GraalWasm topโ
GraalWasm is a WebAssembly engine implemented in the GraalVM. It can interpret and compile WebAssembly programs in the binary format, or be embedded into other programs.
-
Languages written in
Java -
Compiler framework
GraalVM -
Compilation / Execution modes
JIT -
Interoperability with other languages
Java JVM Graal supported languages -
Non-MVP features supported
-
Host APIs supported
WASI -
Non-web standards
WASI -
Used by
- GraalVM JavaScript - A high performance implementation of the JavaScript programming language.
-
Platforms supported
Linux macOS Windows
Happy New Moon With Report topโ
Happy New Moon with Report is an open-source implementation of WebAssembly written entirely in Java. It is used to run or test Web Assembly Modules (*.wasm) in Java.
-
Languages written in
Java -
Compiler framework
N/A
-
Compilation / Execution modes
Interpreted -
Interoperability with other languages
Java JVM languages -
Non-MVP features supported
Sign Extensions -
Host APIs supported
N/A
-
Used by
N/A
-
Platforms supported
JVM Linux macOS Windows
inNative topโ
An AOT (ahead-of-time) compiler for WebAssembly that creates C compatible binaries, either as sandboxed plugins you can dynamically load, or as stand-alone executables that interface directly with the operating system.
-
Languages written in
C++ -
Compiler framework
LLVM -
Compilation / Execution modes
AOT JIT -
Interoperability with other languages
N/A
-
Non-MVP features supported
Threads Multiple Result and Block Parameters Name Section Bulk Memory Operations Sign Extension Instructions Non-trapping Conversion Instructions -
Host APIs supported
Custom -
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
Life topโ
Life is a secure & fast WebAssembly VM built for decentralized applications, written in Go by Perlin Network.
-
Languages written in
Go -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
Lucet topโ
Lucet is a native WebAssembly compiler and runtime. It is designed to safely execute untrusted WebAssembly programs inside your application.
-
Languages written in
Rust -
Compiler framework
Cranelift -
Compilation / Execution modes
AOT -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
WASI -
Non-web standards
WASI -
Used by
N/A
-
Platforms supported
Linux
wasm3/wasm3 topโ
๐ A high performance WebAssembly interpreter
-
Languages written in
C -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
WASI -
Non-web standards
WASI -
Used by
N/A
-
Platforms supported
Linux macOS Windows Android OpenWRT SBC/MCU
Motor topโ
Motor is a WebAssembly runtime, which aims for secure and efficient execution of WebAssembly programs
-
Languages written in
Rust -
Compiler framework
Dynasm -
Compilation / Execution modes
JIT -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS
py-wasm topโ
A python implementation of the WebAssembly interpreter
-
Languages written in
Python -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
Serverless wasm topโ
A small demo of Web Assembly's potential outside of browsers
-
Languages written in
Rust -
Compiler framework
Wasmi Cranelift -
Compilation / Execution modes
Interpreted JIT -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
Swam topโ
WebAssembly engine in Scala
-
Languages written in
Scala -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
VMIR topโ
VMIR is a standalone library written in C that can parse and execute WebAssembly and LLVM Bitcode files
-
Languages written in
C -
Compiler framework
LLVM -
Compilation / Execution modes
Interpreted JIT -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
N/A
-
Platforms supported
Linux macOS Windows
wac topโ
A Minimal WebAssembly interpreter written in C.
-
Languages written in
C -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
wagon topโ
Wagon is a WebAssembly-based interpreter in Go, for Go.
-
Languages written in
Go -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
WAKit topโ
A WebAssembly runtime written in Swift.
-
Languages written in
Swift -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS
Warpy topโ
WebAssembly interpreter in RPython.
-
Languages written in
RPython -
Compiler framework
RPython -
Compilation / Execution modes
JIT -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
Wasmer topโ
Wasmer is a standalone WebAssembly runtime for running WebAssembly outside of the browser, supporting WASI and Emscripten.
-
Languages written in
Rust C++ -
Compiler framework
Singlepass Cranelift (Default) LLVM -
Compilation / Execution modes
JIT AOT -
Interoperability with other languages
Rust PHP C C++ Python Go PHP Java Ruby Postgres C#/.Net Elixir R D Swift -
Non-MVP features supported
Threads SIMD Multi Value returns Name Section Bulk Memory Operations Sign Extension Instructions -
Host APIs supported
Emscripten WASI -
Non-web standards
WASI wasm-c-api -
Used by
- Spacemesh Virtual Machine - A Spacemesh smart contracts vm
- CosmWasm - A Cosmos-compatible library for running wasm smart contracts
- NEAR Protocol - The reference client for NEAR protocol
- Dprint - Pluggable and configurable code formatting platform
-
Platforms supported
Linux (x64, aarch64, x86) macOS (x64, arm64) Windows (x64, x86) FreeBSD (x64) Android
Wasmi topโ
A Wasm interpreter.
-
Languages written in
Rust -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
Wasmo topโ
An Embeddable WebAssembly VM
-
Languages written in
Rust -
Compiler framework
LLVM -
Compilation / Execution modes
JIT -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
wasmrt topโ
wasmrt is a runtime built for native execution of WebAssembly modules (virtualized at first, eventually JIT).
-
Languages written in
C++ -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
Wasmtime topโ
Wasmtime is a standalone wasm-only runtime for WebAssembly, using the Cranelift JIT
-
Languages written in
Rust -
Compiler framework
Cranelift -
Compilation / Execution modes
JIT -
Interoperability with other languages
Python -
Non-MVP features supported
Interface types -
Host APIs supported
WASI -
Non-web standards
WASI wasm-c-api -
Used by
N/A
-
Platforms supported
Linux macOS Windows
WasmVM topโ
An unofficial standalone WebAssembly process virtual machine
-
Languages written in
C++ -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
wasmvm topโ
WebAssembly Virtual Machine, which aim to fit embedded systems.
-
Languages written in
Rust -
Compiler framework
Life -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
WAVM topโ
WebAssembly Virtual Machine, which aim to fit embedded systems.
-
Languages written in
C++ Python -
Compiler framework
LLVM -
Compilation / Execution modes
JIT -
Interoperability with other languages
N/A
-
Non-MVP features supported
Threads SIMD Multiple Result and Block Parameters Exception Handling Name Section Reference Types Bulk Memory Operations Sign Extension Instructions -
Host APIs supported
WASI Emscripten WAVIX -
Non-web standards
- WASI
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
webassembly topโ
An experimental, minimal toolkit and runtime on top of node to produce and run WebAssembly modules
-
Languages written in
JavaScript -
Compiler framework
NodeJS(V8) -
Compilation / Execution modes
JIT -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
WAMR topโ
WebAssembly Micro Runtime (WAMR) is a standalone WebAssembly (WASM) runtime with small footprint
-
Languages written in
C -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted AOT-Modules JIT -
Interoperability with other languages
N/A
-
Non-MVP features supported
-
Host APIs supported
-
Non-web standards
- WASI
-
Used by
N/A
-
Platforms supported
Linux macOS Windows AliOS-Things Android Linux-SGX Nuttx VxWorks Zephyr
TWVM topโ
A tiny and efficient WebAssembly virtual machine.
-
Languages written in
C++ -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
N/A
-
Non-MVP features supported
N/A
-
Host APIs supported
N/A
-
Non-web standards
N/A
-
Used by
N/A
-
Platforms supported
Linux macOS Windows
SSVM topโ
A WebAssembly runtime optimized for server-side applications.
-
Languages written in
C++ -
Compiler framework
LLVM -
Compilation / Execution modes
Interpreter -
Interoperability with other languages
Solidity Rust C++ -
Non-MVP features supported
N/A
-
Host APIs supported
WASI -
Non-web standards
Ethereum Environment Interface -
Used by
Devchain -
Platforms supported
Linux macOS Windows
License
To the extent possible under law, Steve Akinyemi has waived all copyright and related or neighboring rights to this work.