diff --git a/README.md b/README.md index 7a639b0..83c763f 100644 --- a/README.md +++ b/README.md @@ -1,2337 +1,70 @@ -# Awesome WebAssembly Runtimes ![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg) + -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: +# Awesome WebAssembly runtimes -#### Legend -:rocket: - Active development
-:sleeping: - Unmaintained (been more than a year since last commit)
+😎 A curated list of WebAssembly runtimes -## CONTENTS +

+ +

-- [aWsm](#awsm) :rocket:
-- [CMM of Wasm](#cmm) :sleeping:
-- [EOSVM](#eosvm) :rocket:
-- [Extism](#extism) :rocket:
-- [FDVM](#fdvm) :sleeping:
-- [Fizzy](#fizzy) :rocket:
-- [GraalWASM](#graalwasm) :rocket:
-- [Happy New Moon With Report](#happy-new-moon-with-report) :rocket:
-- [inNative](#innative) :rocket:
-- [Life](#life) :sleeping:
-- [Lucet](#lucet) :rocket:
-- [wasm3](#wasm3) :rocket:
-- [Motor](#motor) :sleeping:
-- [py-wasm](#py-wasm) :sleeping:
-- [Serverless Wasm](#serverless-wasm) :sleeping:
-- [Swam](#swam) :rocket:
-- [VMIR](#vmir) :sleeping:
-- [wac](#wac) :sleeping:
-- [Wagon](#wagon) :sleeping:
-- [WAKit](#wakit) :rocket:
-- [Warpy](#warpy) :sleeping:
-- [WasmEdge](#wasmedge) :rocket:
-- [Wasmer](#wasmer) :rocket:
-- [Wasmi](#wasmi) :rocket:
-- [Wasmo](#wasmo) :rocket:
-- [WasmRT](#wasmrt) :sleeping:
-- [Wasmtime](#wasmtime) :rocket:
-- [WasmVM](#wasmvm1) :rocket:
-- [WasmVM](#wasmvm2) :sleeping:
-- [WAVM](#wavm) :rocket:
-- [WebAssembly](#webassembly) :sleeping:
-- [WebAssembly Micro Runtime](#wamr) :rocket:
-- [TWVM](#twvm) :rocket:
-- [wazero](#wazero) :rocket:
+

+ +

----------------- +A WebAssembly runtime is a software environment that executes programs compiled to the WebAssembly (Wasm) binary format, enabling efficient and portable execution of code. Notable runtimes include V8, SpiderMonkey, and Wasmtime. +- **[V8](https://v8.dev/):** Browser \ + V8 includes its own custom WebAssembly engine. -## [aWsm](https://github.com/gwsystems/aWsm) [top⇈](#contents) +- **[SpiderMonkey](https://spidermonkey.dev/):** Browser \ + SpiderMonkey is also a WebAssembly engine. -> aWsm is a compiler and runtime for compiling WebAssembly (Wasm) code into llvm bytecode, then into sandboxed binaries you can run on various platforms. +- **[JavaScriptCore](https://docs.webkit.org/Deep%20Dive/JSC/JavaScriptCore.html):** Browser \ + JavaScriptCore includes its own custom WebAssembly engine. -* **Languages written in** +- **[aWsm](https://github.com/gwsystems/aWsm):** CLI \ + WebAssembly ahead-of-time compiler and runtime. Focuses on generating fast code, simplicity, and portability. - - - - - -
RustC
+- **[Chicory](https://github.com/dylibso/chicory):** Java \ + Native JVM WebAssembly runtime -* **Compiler framework** +- **[Extism](https://extism.org/):** CLI, Rust, JavaScript, Elixr, Go, Haskell, Java, .NET, OCaml, PHP, Python, Ruby, Zig, C, C++ \ + The framework for building with WebAssembly (wasm). Easily load wasm modules, move data, call functions, and build extensible apps. - - - - -
LLVM
+- **[GraalWasm](https://github.com/oracle/graal/tree/master/wasm):** Java \ + GraalWasm is a WebAssembly engine implemented in GraalVM. It can interpret and compile WebAssembly programs in the binary format, or be embedded into other programs. +- **[Lunatic](https://github.com/lunatic-solutions/lunatic):** CLI, Rust, AssemblyScript \ + Lunatic is an Erlang-inspired runtime for WebAssembly -* **Compilation / Execution modes** +- **[The Wizard Research Engine](https://github.com/titzer/wizard-engine):** Virgil \ + Research WebAssembly Engine - - - - -
AOT
+- **[Wasm3](https://github.com/wasm3/wasm3):** CLI, Python, Rust, C, C++, Go, Zig, Perl, Swift, .NET, Nim, Arduino, PlatformIO, Particle, QuickJS \ + 🚀 A fast WebAssembly interpreter and the most universal WASM runtime -* **Interoperability with other languages** +- **[WasmEdge](https://wasmedge.org/):** CLI, C, Rust, Go, Java, C++, Python \ + Bring the cloud-native and serverless application paradigms to Edge Computing. - - - - -
C
+- **[Wasmer](https://github.com/wasmerio/wasmer):** CLI, Rust, C, C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Java, R, Postgres, Swift, Zig, Dart, Crystal, List, Julia, V, OCaml \ + Wasmer is a blazing fast and secure WebAssembly runtime that enables incredibly lightweight containers to run anywhere: from Desktop to the Cloud, Edge and even the browser. -* **Non-MVP features supported** +- **[Wasmi](https://github.com/paritytech/wasmi):** CLI \ + Wasmi is an efficient and lightweight WebAssembly interpreter for embedded systems. - - `N/A` +- **[Wasmtime](https://github.com/bytecodealliance/wasmtime):** CLI, Rust, C, C++, Python, .NET, Go, Ruby, Elixr, Perl \ + A fast and secure runtime for WebAssembly -* **Host APIs supported** +- **[WasmVM](https://github.com/WasmVM/WasmVM):** CLI, C++ \ + A standalone WebAssembly process virtual machine - - `N/A` +- **[WebAssembly Micro Runtime](https://github.com/bytecodealliance/wasm-micro-runtime):** CLI, C, C++ \ + WebAssembly Micro Runtime (WAMR) is a lightweight standalone WebAssembly (Wasm) runtime with small footprint, high performance and highly configurable features for applications cross from embedded, IoT, edge to Trusted Execution Environment (TEE), smart contract, cloud native and so on. -* **Non-web standards** +- **[wazero](https://wazero.io/):** CLI, Go \ + wazero is the only zero dependency WebAssembly runtime written in Go. - - `N/A` +--- -* **Used by** - - - `N/A` - -* **Platforms supported** - - - - - - -
LinuxmacOS
- - -## [CMM of Wasm](https://github.com/SimonJF/cmm_of_wasm) [top⇈](#contents) -> 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** - - - - - - -
LinuxmacOS
- -## [EOSVM](https://github.com/EOSIO/eos-vm) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- - -## [Extism](https://github.com/extism/extism) [top⇈](#contents) -> 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: - - [`Browser`](https://extism.org/docs/integrate-into-your-codebase/browser-runtime-sdk/) - - [`C`](https://extism.org/docs/integrate-into-your-codebase/c-host-sdk/) - - [`C++`](https://extism.org/docs/integrate-into-your-codebase/cpp-host-sdk/) - - [`.NET`](https://extism.org/docs/integrate-into-your-codebase/dotnet-host-sdk) - - [`Elixir`](https://extism.org/docs/integrate-into-your-codebase/elixir-host-sdk/) - - [`Go`](https://extism.org/docs/integrate-into-your-codebase/go-host-sdk/) - - [`Haskell`](https://extism.org/docs/integrate-into-your-codebase/haskell-host-sdk/) - - [`Java`](https://extism.org/docs/integrate-into-your-codebase/java-host-sdk) - - [`Node`](https://extism.org/docs/integrate-into-your-codebase/node-host-sdk/) - - [`OCaml`](https://extism.org/docs/integrate-into-your-codebase/ocaml-host-sdk/) - - [`PHP`](https://extism.org/docs/integrate-into-your-codebase/php-host-sdk/) - - [`Python`](https://extism.org/docs/integrate-into-your-codebase/python-host-sdk/) - - [`Ruby`](https://extism.org/docs/integrate-into-your-codebase/ruby-host-sdk/) - - [`Rust`](https://extism.org/docs/integrate-into-your-codebase/rust-host-sdk/) - - [`Zig`](https://extism.org/docs/integrate-into-your-codebase/zig-host-sdk) - - PDKs to create WebAssembly plug-ins in: - - [`Rust`](https://github.com/extism/rust-pdk) - - [`JavaScript`](https://extism.org/docs/write-a-plugin/js-pdk) - - [`Go`](https://github.com/extism/go-pdk) - - [`Haskell`](https://extism.org/docs/write-a-plugin/haskell-pdk) - - [`AssemblyScript`](https://github.com/extism/assemblyscript-pdk) - - [`C`](https://github.com/extism/c-pdk) - - [`C++`](https://github.com/extism/c-pdk) - - [`Zig`](https://extism.org/docs/write-a-plugin/zig-pdk) - - -* **Host APIs supported** - - module loading & linking via [`Manifest`](https://extism.org/docs/concepts/manifest) - - WASI - - non-WASI `http_request` - -* **Platforms supported** - - - - - - - -
LinuxmacOSWindows
- - -## [FDVM](https://github.com/funcdef/fdvm) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- - -## [Fizzy](https://github.com/wasmx/fizzy) [top⇈](#contents) -> 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** - - - - - - -
LinuxmacOS
- -## [GraalWasm](https://github.com/oracle/graal/tree/master/wasm) [top⇈](#contents) -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** - - - - - - - -
JavaJVMGraal supported languages
- -* **Non-MVP features supported** - - - - -
- -* **Host APIs supported** - - - - - -
WASI
- -* **Non-web standards** - - - - - -
WASI
- -* **Used by** - - - [GraalVM JavaScript](https://github.com/graalvm/graaljs) - A high performance implementation of the JavaScript programming language. - -* **Platforms supported** - - - - - - - -
LinuxmacOSWindows
- -## [Happy New Moon With Report](https://github.com/fishjd/HappyNewMoonWithReport) [top⇈](#contents) - -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** - - - - - - -
JavaJVM languages
- -* **Non-MVP features supported** - - - - - -
Sign Extensions
- -* **Host APIs supported** - - - `N/A` - -* **Used by** - - - `N/A` - - -* **Platforms supported** - - - - - - - - -
JVMLinuxmacOSWindows
- -## [inNative](https://github.com/innative-sdk/innative) [top⇈](#contents) -> 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** - - - - - - -
AOTJIT
- -* **Interoperability with other languages** - - - `N/A` - -* **Non-MVP features supported** - - - - - - - - - - -
ThreadsMultiple Result and Block ParametersName SectionBulk Memory OperationsSign Extension InstructionsNon-trapping Conversion Instructions
- -* **Host APIs supported** - - - - - -
Custom
- -* **Non-web standards** - - - `N/A` - -* **Used by** - - - `N/A` - -* **Platforms supported** - - - - - - - -
LinuxmacOSWindows
- - -## [Life](https://github.com/perlin-network/life) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- -## [Lucet](https://github.com/fastly/lucet) [top⇈](#contents) -> 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](https://github.com/bytecodealliance/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
- - -## [Wasm3](https://github.com/wasm3/wasm3) [top⇈](#contents) -> 🚀 A high performance WebAssembly interpreter - -* **Languages written in** - - - - - -
C
- -* **Compiler framework** - - - - - -
Custom
- - -* **Compilation / Execution modes** - - - - - -
Interpreted
- -* **Interoperability with other languages** - - - - - - - - - - - -
PythonC/C++RustGoZigSwiftC#/.Net
- -* **Non-MVP features supported** - - - - - - - - - -
Multi-ValueBulk Memory OperationsSign-extension operatorsNon-trapping conversionsName Section
- -* **Host APIs supported** - - - - - - -
WASICustom
- -* **Non-web standards** - - - - - - -
WASIGas Metering
- -* **Used by** - - - [wasmcloud](https://wasmcloud.dev/) - A platform for writing portable business logic - - [Shareup](https://shareup.app/) - Fast, private sharing for everyone - - [WowCube](https://wowcube.com/) - An nnovative console and the gaming platform - - [txiki.js](https://github.com/saghul/txiki.js) -A small and powerful JavaScript runtime - -* **Platforms supported** - - - - - - - - - - - - -
WindowsLinux
(any arch)
macOS
(any arch)
FreeBSD
(any arch)
AndroidOpenWRTSBC/MCUArduino
- - - -## [Motor](https://github.com/penberg/motor) [top⇈](#contents) -> 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** - - - - - - -
LinuxmacOS
- - -## [py-wasm](https://github.com/ethereum/py-wasm) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- - -## [Serverless wasm](https://github.com/Geal/serverless-wasm) [top⇈](#contents) -> A small demo of Web Assembly's potential outside of browsers - -* **Languages written in** - - - - - -
Rust
- -* **Compiler framework** - - - - - - -
WasmiCranelift
- - -* **Compilation / Execution modes** - - - - - - -
InterpretedJIT
- -* **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** - - - - - - - -
LinuxmacOSWindows
- - -## [Swam](https://github.com/satabin/swam) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- - -## [VMIR](https://github.com/andoma/vmir) [top⇈](#contents) -> 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** - - - - - - -
InterpretedJIT
- -* **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** - - - - - - - -
LinuxmacOSWindows
- - -## [wac](https://github.com/kanaka/wac) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- - -## [wagon](https://github.com/go-interpreter/wagon) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- - -## [WAKit](https://github.com/akkyie/WAKit) [top⇈](#contents) -> 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** - - - - - - -
LinuxmacOS
- -## [Warpy](https://github.com/kanaka/warpy) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- - -## [WasmEdge](https://github.com/WasmEdge/WasmEdge) [top⇈](#contents) -> 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** - - - - - - -
InterpreterAOT
- -* **Interoperability with other languages** - - - - - - - - - - - - - - -
SolidityRustC/C++Go/TinyGoJavaScriptPythonGrainSwiftZigRuby
- -* **Non-MVP features supported** - - - - - - - - - - - - -
Bulk Memory OperationsSIMDMulti-MemoryMulti-ValueReference TypesSign Extension InstructionsNon-Trapping Float-to-Int ConversionsMutable Global
- -* **Host APIs supported** - - - - - - - - - -
WASINetworking SocketTensorFlowCommand InterfaceImage Processing
- -* **Non-web standards** - - - - - - - - - -
WASIGas MeteringEthereum Environment InterfaceOasisSubstrate
- -* **Used by** - - - [Suborbital](https://blog.suborbital.dev/suborbital-wasmedge) - - [crun](https://github.com/containers/crun/pull/774) - - [SuperEdge](https://github.com/superedge/superedge/pull/335) - - [OpenYurt](https://github.com/openyurtio/openyurt.io/pull/85) - - [Dapr](https://www.infoq.com/articles/webassembly-dapr-wasmedge/) - - [Yomo](https://github.com/yomorun/yomo-wasmedge-tensorflow) - - [Oasis ETH ParaTime](https://medium.com/oasis-protocol-project/the-oasis-eth-paratime-is-live-on-mainnet-33d8713ec870) - -* **Platforms supported** - - - - - - - - - - -
LinuxmacOSWindowsAndroidOpenHarmonyseL4 RTOS
- -## [Wasmer](https://github.com/wasmerio/wasmer) [top⇈](#contents) -> Wasmer is a standalone WebAssembly runtime for running WebAssembly outside of the browser, supporting WASI and Emscripten. - -* **Languages written in** - - - - - - -
RustC++
- -* **Compiler framework** - - - - - - - -
SinglepassCranelift (Default)LLVM
- - -* **Compilation / Execution modes** - - - - - - -
JITAOT
- -* **Interoperability with other languages** - - - - - - - - - - - - - - - - - - - -
RustPHPCC++PythonGoPHPJavaRubyPostgresC#/.NetElixirRDSwift
- -* **Non-MVP features supported** - - - - - - - - - - -
ThreadsSIMDMulti Value returnsName SectionBulk Memory OperationsSign Extension Instructions
- -* **Host APIs supported** - - - - - - -
EmscriptenWASI
- -* **Non-web standards** - - - - - - -
WASIwasm-c-api
- -* **Used by** - - - [Spacemesh Virtual Machine](https://github.com/spacemeshos/svm) - A Spacemesh smart contracts vm - - [CosmWasm](https://github.com/CosmWasm/cosmwasm) - A Cosmos-compatible library for running wasm smart contracts - - [NEAR Protocol](https://github.com/near/nearcore) - The reference client for NEAR protocol - - [Dprint](https://github.com/dprint/dprint) - Pluggable and configurable code formatting platform - -* **Platforms supported** - - - - - - - - - -
Linux (x64, aarch64, x86)macOS (x64, arm64)Windows (x64, x86)FreeBSD (x64)Android
- -## [Wasmi](https://github.com/paritytech/wasmi) [top⇈](#contents) -> 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 GlobalsSign-extension operatorsNon-trapping conversionsMulti-ValueBulk Memory OperationsReference TypesTail CallsExtended Const
- -* **Host APIs supported** - - - `N/A` - -* **Non-web standards** - - - - - -
WASI
- -* **Used by** - - - - - - - -
SubstratesmoldotAyaka Game Engine
- -* **Platforms supported** - - - - - - - - -
LinuxmacOSWindowsWebAssembly
- -## [Wasmo](https://github.com/appcypher/wasmo) [top⇈](#contents) -> 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](https://github.com/rhitchcock/wasmrt) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- -## [Wasmtime](https://github.com/CraneStation/wasmtime) [top⇈](#contents) -> 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** - - - - - - -
WASIwasm-c-api
- -* **Used by** - - - [Wasmi](https://github.com/paritytech/wasmi): an efficient WebAssembly interpreter that is used by [Substrate](https://github.com/paritytech/substrate), a next-generation framework for blockchain innovation. - -* **Platforms supported** - - - - - - - -
LinuxmacOSWindows
- -## [WasmVM](https://github.com/WasmVM/WasmVM) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- -## [wasmvm](https://github.com/kogai/wasvm) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- -## [WAVM](https://github.com/WAVM/WAVM) [top⇈](#contents) -> 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** - - - - - - - - - - - - -
ThreadsSIMDMultiple Result and Block ParametersException HandlingName SectionReference TypesBulk Memory OperationsSign Extension Instructions
- -* **Host APIs supported** - - - - - - - -
WASIEmscriptenWAVIX
- -* **Non-web standards** - - - [x] WASI - -* **Used by** - - - `N/A` - -* **Platforms supported** - - - - - - - -
LinuxmacOSWindows
- -## [webassembly](https://github.com/dcodeIO/webassembly) [top⇈](#contents) -> 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** - - - - - - - -
LinuxmacOSWindows
- - -## [WAMR](https://github.com/bytecodealliance/wasm-micro-runtime) [top⇈](#contents) -> WebAssembly Micro Runtime (WAMR) is a standalone WebAssembly (WASM) runtime with small footprint - -* **Languages written in** - - - - - -
C
- -* **Compiler framework** - - - - - -
Custom
- - -* **Compilation / Execution modes** - - - - - - - -
InterpretedAOT-ModulesJIT
- -* **Interoperability with other languages** - - - `N/A` - -* **Non-MVP features supported** - - - [Non-trapping float-to-int conversions](https://github.com/WebAssembly/nontrapping-float-to-int-conversions) - - [Sign-extension operators](https://github.com/WebAssembly/sign-extension-ops) - - [Bulk memory operations](https://github.com/WebAssembly/bulk-memory-operations) - - [Shared memory](https://github.com/WebAssembly/threads/blob/main/proposals/threads/Overview.md#shared-linear-memory) - - [Multi-value](https://github.com/WebAssembly/multi-value) - - [Tail-call](https://github.com/WebAssembly/tail-call) - - -* **Host APIs supported** - - - [wasm-c-api](https://github.com/WebAssembly/wasm-c-api) - -* **Non-web standards** - - - [x] WASI - -* **Used by** - - - `N/A` - -* **Platforms supported** - - - - - - - - - - - - - -
LinuxmacOSWindowsAliOS-ThingsAndroidLinux-SGXNuttxVxWorksZephyr
- - - -## [TWVM](https://github.com/Becavalier/TWVM) [top⇈](#contents) ->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** - - - - - - - -
LinuxmacOSWindows
- - - -## [wazero](https://wazero.io) [top⇈](#contents) -> 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** - - - - - - -
InterpretedJIT
- -* **Interoperability with other languages** - - - `N/A` - -* **Non-MVP features supported** - - - - - - - - - - - - -
Bulk Memory OperationsImport/Export of Mutable GlobalsSign-extension operatorsMulti-Value ReturnsName SectionNon-trapping float-to-int conversionsReference TypesSIMD
- -* **Host APIs supported** - - - - - - -
AssemblyScriptWASI
- -* **Non-web standards** - - - - - -
WASI
- -* **Used by** - - - [dapr](https://github.com/dapr/dapr) - APIs that simplify microservice connectivity - - [trivy](https://github.com/aquasecurity/trivy) - vulnerability/misconfiguration/secret scanner for containers and other artifacts - - [wapc-go](https://github.com/wapc/wapc-go) - WebAssembly Host Runtime for waPC-compliant modules - -* **Platforms supported** - - - - - - - - -
FreeBSD (amd64)Linux (amd64, arm64, riscv64)macOs (amd64)Windows (amd64)
-------------------- - -## License - -[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/) - -To the extent possible under law, [Steve Akinyemi](https://github.com/appcypher) has waived all copyright and related or neighboring rights to this work. +Criteria: Be active (activity within the last year) and be popular (100+ GitHub stars).