Home

Awesome

Awesome WebAssembly Runtimes Awesome

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:

Legend

:rocket: - Active development</br> :sleeping: - Unmaintained (been more than a year since last commit)</br>

CONTENTS


<a name="awsm"></a>aWsm <sup>top⇈</sup>

aWsm is a compiler and runtime for compiling WebAssembly (Wasm) code into llvm bytecode, then into sandboxed binaries you can run on various platforms.

<a name="cmm"></a>CMM of Wasm <sup>top⇈</sup>

A compiler from WebAssembly to native code, via the OCaml backend.

<a name="eosvm"></a>EOSVM <sup>top⇈</sup>

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.

<a name="extism"></a>Extism <sup>top⇈</sup>

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.

<a name="fdvm"></a>FDVM <sup>top⇈</sup>

WASM runtime to develop server-side WebAssembly applications.

<a name="fizzy"></a>Fizzy <sup>top⇈</sup>

Fizzy aims to be a fast, deterministic, and pedantic WebAssembly interpreter written in C++.

<a name="graalwasm"></a>GraalWasm <sup>top⇈</sup>

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.

<a name="happy-new-moon-with-report"></a>Happy New Moon With Report <sup>top⇈</sup>

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.

<a name="innative"></a>inNative <sup>top⇈</sup>

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.

<a name="life"></a>Life <sup>top⇈</sup>

Life is a secure & fast WebAssembly VM built for decentralized applications, written in Go by Perlin Network.

<a name="lucet"></a>Lucet <sup>top⇈</sup>

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.

<a name="wasm3"></a>Wasm3 <sup>top⇈</sup>

🚀 A high performance WebAssembly interpreter

<a name="motor"></a>Motor <sup>top⇈</sup>

Motor is a WebAssembly runtime, which aims for secure and efficient execution of WebAssembly programs

<a name="py-wasm"></a>py-wasm <sup>top⇈</sup>

A python implementation of the WebAssembly interpreter

<a name="serverless-wasm"></a>Serverless wasm <sup>top⇈</sup>

A small demo of Web Assembly's potential outside of browsers

<a name="swam"></a>Swam <sup>top⇈</sup>

WebAssembly engine in Scala

<a name="vmir"></a>VMIR <sup>top⇈</sup>

VMIR is a standalone library written in C that can parse and execute WebAssembly and LLVM Bitcode files

<a name="wac"></a>wac <sup>top⇈</sup>

A Minimal WebAssembly interpreter written in C.

<a name="wagon"></a>wagon <sup>top⇈</sup>

Wagon is a WebAssembly-based interpreter in Go, for Go.

<a name="wakit"></a>WAKit <sup>top⇈</sup>

A WebAssembly runtime written in Swift.

<a name="warpy"></a>Warpy <sup>top⇈</sup>

WebAssembly interpreter in RPython.

<a name="wasmedge"></a>WasmEdge <sup>top⇈</sup>

A lightweight, high-performance, and extensible WebAssembly runtime for cloud native, edge, and decentralized applications. Project under CNCF.

<a name="wasmer"></a>Wasmer <sup>top⇈</sup>

Wasmer is a standalone WebAssembly runtime for running WebAssembly outside of the browser, supporting WASI and Emscripten.

<a name="wasmi"></a>Wasmi <sup>top⇈</sup>

A Wasm interpreter.

<a name="wasmo"></a>Wasmo <sup>top⇈</sup>

A WebAssembly Runtime and Compiler based on LLVM.

<a name="wasmrt"></a>wasmrt <sup>top⇈</sup>

wasmrt is a runtime built for native execution of WebAssembly modules (virtualized at first, eventually JIT).

<a name="wasmtime"></a>Wasmtime <sup>top⇈</sup>

Wasmtime is a standalone wasm-only runtime for WebAssembly, using the Cranelift JIT

<a name="wasmvm1"></a>WasmVM <sup>top⇈</sup>

An unofficial standalone WebAssembly process virtual machine

<a name="wasmvm2"></a>wasmvm <sup>top⇈</sup>

WebAssembly Virtual Machine, which aim to fit embedded systems.

<a name="wavm"></a>WAVM <sup>top⇈</sup>

WebAssembly Virtual Machine, which aim to fit embedded systems.

<a name="webassembly"></a>webassembly <sup>top⇈</sup>

An experimental, minimal toolkit and runtime on top of node to produce and run WebAssembly modules

<a name="wamr"></a>WAMR <sup>top⇈</sup>

WebAssembly Micro Runtime (WAMR) is a standalone WebAssembly (WASM) runtime with small footprint

<a name="twvm"></a>TWVM <sup>top⇈</sup>

A tiny and efficient WebAssembly virtual machine.

<a name="wizard"></a>Wizard <sup>top⇈</sup>

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.

<a name="wazero"></a>wazero <sup>top⇈</sup>

wazero is a WebAssembly 1.0 and 2.0 spec compliant runtime written in Go, with zero platform dependencies.


License

CC0

To the extent possible under law, Steve Akinyemi has waived all copyright and related or neighboring rights to this work.