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
๐ - Active development
๐ด - Unmaintained (been more than a year since last commit)
CONTENTS
- CMM of Wasm ๐ด
- EOSVM ๐
- FDVM ๐ด
- GraalWASM ๐
- 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
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
- wasm-c-api
-
Used by
- GraalVM JavaScript - A high performance implementation of the JavaScript programming language.
-
Platforms supported
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 -
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
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
- wasm-c-api
-
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
Cranelift (Primary) Dynasm.rs LLVM -
Compilation / Execution modes
JIT -
Interoperability with other languages
PHP C C++ Python Go PHP Ruby Postgres C#/.Net R Swift -
Non-MVP features supported
SIMD Threads -
Host APIs supported
Emscripten WASI -
Non-web standards
- WASI
- wasm-c-api
-
Used by
- Spacemesh Virtual Machine - A Spacemesh smart contracts vm
-
Platforms supported
Linux macOS Windows
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
C++ -
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
WebAssembly Micro Runtime 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 -
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
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.