This repo contains a list of virtual machines and tools that execute the WebAssembly(wasm) format and/or compile it to executable machine code :octocat:
:rocket: - Active development :sleeping: - Unmaintained (been more than a year since last commit)
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
Rust | C |
Compiler framework
LLVM |
Compilation / Execution modes
AOT |
Interoperability with other languages
C |
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 |
Extism's goal is to make all software programmable, and is a flexible, embedded runtime to make it easy to extend your software with WebAssembly.
Languages written in
Rust |
Compiler framework
Custom |
Compilation / Execution modes
JIT |
Interoperability with other languages
SDKs to execute WebAssembly in:
PDKs to create WebAssembly plug-ins in:
Host APIs supported
Manifest
http_request
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
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
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
Mutable Globals | Sign-extension operators | Non-trapping conversions | Multi-Value | Bulk Memory Operations | Reference Types | Tail Calls | Extended Const |
Host APIs supported
N/A
Non-web standards
WASI |
Used by
Substrate | smoldot | Ayaka Game Engine |
Platforms supported
Linux | macOS | Windows | WebAssembly |
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
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
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
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 |
Wizard is a WebAssembly 1.0 and 2.0 spec-compliant runtime written in Virgil, with zero platform dependencies. It features a fast interpreter, baseline compilation, and advanced dynamic analysis.
Languages written in
Virgil |
Compiler framework
Custom |
Compilation / Execution modes
Interpreted | JIT |
Interoperability with other languages
N/A
Non-MVP features supported
Bulk Memory Operations | Import/Export of Mutable Globals | Sign-extension operators | Multi-Value Returns | Name Section | Non-trapping float-to-int conversions | Reference Types | SIMD | Tail-call | GC | Exception Handling |
Host APIs supported
Wave | WASI |
Non-web standards
WASI |
Used by
Platforms supported
Linux (amd64, x86) | macOs (amd64) | Java (java5) | Wasm 1.0 |
wazero is a WebAssembly 1.0 and 2.0 spec compliant runtime written in Go, with zero platform dependencies.
Languages written in
Go |
Compiler framework
Custom |
Compilation / Execution modes
Interpreted | JIT |
Interoperability with other languages
N/A
Non-MVP features supported
Bulk Memory Operations | Import/Export of Mutable Globals | Sign-extension operators | Multi-Value Returns | Name Section | Non-trapping float-to-int conversions | Reference Types | SIMD |
Host APIs supported
AssemblyScript | WASI |
Non-web standards
WASI |
Used by
Platforms supported
FreeBSD (amd64) | Linux (amd64, arm64, riscv64) | macOs (amd64) | Windows (amd64) |
To the extent possible under law, Steve Akinyemi has waived all copyright and related or neighboring rights to this work.