A fast WebAssembly interpreter in C, small enough for microcontrollers and embeddable as a library in many languages.
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
Read the build guide for the VM core and build it from source
- 2
Build the iwasm executable following the product-mini guide for your platform
- 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
A standalone WebAssembly runtime built on the Cranelift code generator, with WASI support and embeddings for multiple languages.
A C# and .NET CIL to WebAssembly compiler with its own CoreLib, runtime and SDK, producing small standalone WASI Preview 2 components.
A WebAssembly runtime and CLI for running apps and AI agent code in fast, lightweight, sandboxed environments.
A Go compiler built on LLVM that targets microcontrollers, WebAssembly (WASM/WASI), and command-line tools.
A Python 3 interpreter written in Rust, able to run Python code without CPython bindings, with WebAssembly and embedding support.