This repo contains a list of virtual machines and tools that execute the WebAssembly(wasm) format and/or compile it to executable machine code
🚀 - Active development
😴 - Unmaintained (been more than a year since last commit)
- aWsm 🚀
- 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 😴
- WasmEdge 🚀
- Wasmer 🚀
- Wasmi 🚀
- Wasmo 🚀
- WasmRT 😴
- Wasmtime 🚀
- WasmVM 🚀
- WasmVM 😴
- WAVM 🚀
- WebAssembly 😴
- WebAssembly Micro Runtime 🚀
- TWVM 🚀
aWsm is a compiler and runtime for compiling WebAssembly (Wasm) code into llvm bytecode, then into sandboxed binaries you can run on various platforms.
-
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
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
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
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 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 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 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
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 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 is a native WebAssembly compiler and runtime. It is designed to safely execute untrusted WebAssembly programs inside your application.
NOTE: Lucet is now in maintenance mode. Work has been moved to wasmtime.
-
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
🚀 A high performance WebAssembly interpreter
-
Languages written in
C -
Compiler framework
Custom -
Compilation / Execution modes
Interpreted -
Interoperability with other languages
Python C/C++ Rust Go Zig Swift C#/.Net -
Non-MVP features supported
Multi-Value Bulk Memory Operations Sign-extension operators Non-trapping conversions Name Section -
Host APIs supported
WASI Custom -
Non-web standards
WASI Gas Metering -
Used by
-
Platforms supported
Windows Linux
(any arch)macOS
(any arch)FreeBSD
(any arch)Android OpenWRT SBC/MCU Arduino
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
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
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
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 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
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 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
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
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
A lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. Project under CNCF.
-
Languages written in
C++ -
Compiler framework
LLVM -
Compilation / Execution modes
Interpreter AOT -
Interoperability with other languages
Solidity Rust C/C++ Go/TinyGo JavaScript Python Grain Swift Zig Ruby -
Non-MVP features supported
Bulk Memory Operations SIMD Multi-Memory Multi-Value Reference Types Sign Extension Instructions Non-Trapping Float-to-Int Conversions Mutable Global -
Host APIs supported
WASI Networking Socket TensorFlow Command Interface Image Processing -
Non-web standards
WASI Gas Metering Ethereum Environment Interface Oasis Substrate -
Used by
-
Platforms supported
Linux macOS Windows Android OpenHarmony seL4 RTOS
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
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
A WebAssembly Runtime and Compiler based on LLVM.
-
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
macOS
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 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
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
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
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
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 (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
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
To the extent possible under law, Steve Akinyemi has waived all copyright and related or neighboring rights to this work.