Repolode
wasm-micro-runtime

wasm-micro-runtime/wasm-micro-runtime

WebAssembly Micro Runtime (WAMR), a lightweight Wasm runtime for embedded, IoT, edge and other constrained environments.

Stars
6,192
Forks
882
Open issues
644
Last commit
yesterday

What is it?

WebAssembly Micro Runtime (WAMR) is a standalone WebAssembly runtime aimed at small footprint and configurable features. It targets applications ranging from embedded and IoT devices to edge, trusted execution environments, smart contracts and cloud-native setups.

The project provides a VM core library for loading and running Wasm modules in interpreter, ahead-of-time (AOT) and just-in-time (JIT) modes, including a Fast JIT and an LLVM JIT tier. It also ships the iwasm command-line executable with WASI support, and wamrc, an AOT compiler that turns Wasm files into AOT files. Host programs can embed the runtime through C APIs, and language bindings exist for Go, Python and Rust.

WAMR supports x86, ARM, AArch64, RISC-V, Xtensa, MIPS and ARC, and can be built for Linux, macOS, Windows, Android, Zephyr, NuttX, FreeRTOS-based ESP-IDF and other platforms. Additional features include native API export, pthread and wasi-threads support, sockets, Linux SGX support and source debugging.

Key features

  • 01Interpreter, AOT and JIT execution modes, including Fast JIT and LLVM JIT tiers.
  • 02Small runtime binary size suitable for microcontrollers.
  • 03C APIs for embedding and a mechanism to export native APIs to Wasm apps.
  • 04WASI and built-in libc options, plus pthread, wasi-threads and Berkeley socket support.
  • 05Runs on many CPU architectures and operating systems, including Zephyr, NuttX and Linux SGX.

Use cases

  • Running Wasm plugins or logic inside an embedded or IoT device.
  • Embedding a Wasm sandbox into a C, C++, Python, Go or Rust host application.
  • Compiling Wasm modules ahead of time for faster startup on edge devices.
  • Running Wasm workloads inside trusted execution environments such as Intel SGX.

Quick start

  1. 1

    Read the build guide for the VM core and build it from source

  2. 2

    Build the iwasm executable following the product-mini guide for your platform

  3. 3

    Build Wasm apps or embed WAMR using the docs and samples

Things to know

  • The README gives no package-manager install, so you must build from source.
  • The project is migrating to a new GitHub location, so some links and CI checks may change.

In collections

Topics

FAQ

What is wasm-micro-runtime?
WebAssembly Micro Runtime (WAMR), a lightweight Wasm runtime for embedded, IoT, edge and other constrained environments. WebAssembly Micro Runtime (WAMR) is a standalone WebAssembly runtime aimed at small footprint and configurable features. It targets applications ranging from embedded and IoT devices to edge, trusted execution environments, smart contracts and cloud-native setups.
Is wasm-micro-runtime free to use? What license does it have?
wasm-micro-runtime is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is wasm-micro-runtime still maintained?
Actively maintained. The last commit to wasm-micro-runtime was on Nov 6, 2026.
What can I use wasm-micro-runtime for?
Running Wasm plugins or logic inside an embedded or IoT device. Embedding a Wasm sandbox into a C, C++, Python, Go or Rust host application. Compiling Wasm modules ahead of time for faster startup on edge devices. Running Wasm workloads inside trusted execution environments such as Intel SGX.
How do I install wasm-micro-runtime?
Read the build guide for the VM core and build it from source Build the iwasm executable following the product-mini guide for your platform Build Wasm apps or embed WAMR using the docs and samples
Where can I get wasm-micro-runtime?
The source code and installation instructions are on GitHub: https://github.com/wasm-micro-runtime/wasm-micro-runtime

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects