Giter Site home page Giter Site logo

awesome-wasm-runtimes's Introduction

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

๐Ÿš€ - Active development
๐Ÿ˜ด - Unmaintained (been more than a year since last commit)

CONTENTS


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

    • wasmcloud - A platform for writing portable business logic
    • Shareup - Fast, private sharing for everyone
    • WowCube - An nnovative console and the gaming platform
    • txiki.js -A small and powerful JavaScript runtime
  • 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

    • 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

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

License

CC0

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

awesome-wasm-runtimes's People

Contributors

alabulei1 avatar appcypher avatar axic avatar becavalier avatar beriberikix avatar elmato avatar equal-l2 avatar erikmcclure avatar fishjd avatar iemejia avatar indolering avatar kanaka avatar kfessel avatar kogai avatar kripken avatar lf- avatar maxgraey avatar proppy avatar ricogit avatar syrusakbary avatar vshymanskyy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.