core | ||
doc | ||
samples | ||
test-tools | ||
.gitignore | ||
CONTRIBUTING.md | ||
Dockerfile | ||
LICENSE | ||
README.md |
WebAssembly Micro Runtime
WebAssembly Micro Runtime (WAMR) is a standalone WebAssembly (WASM) runtime designed for a small footprint. It includes:
- A WebAssembly (WASM) VM core
- The supporting API's for the WASM applications
- A mechanism for dynamic management of the WASM application
Current Features of WAMR
- WASM interpreter (AOT is planned)
- Provides support for a subset of Libc.
- Supports "SIDE_MODULE=1" EMCC compilation option
- Provides API's for embedding runtime into production software
- Provides a mechanism for exporting native API's to WASM applications
- Supports the programming of firmware apps in a large range of languages (C/C++/Java/Rust/Go/TypeScript etc.)
- App sandbox execution environment on embedded OS
- The purely asynchronized programming model
- Menu configuration for easy platform integration
- Supports micro-service and pub-sub event inter-app communication models
- Easy to extend to support remote FW application management from host or cloud
Architecture
The application manager component handles the packets that the platform receives from external sources through any communication buses such as a socket, serial port or SPI. A packet type can be either a request, a response or an event. The application manager will serve the requests with URI "/applet" and call the runtime glue layer interfaces for installing/uninstalling the application. For other URI's, it will filter the resource registration table and route the request to the internal queue of the responsible application.
-
The WebAssembly runtime provides the execution environment for WASM applications.
-
The messaging layer can support the API for WASM applications to communicate with each other and also the host environment.
-
When ahead of time (AOT) compilation is enabled (TODO), the WASM application could be either WASM or a compiled native binary.
Build WAMR Core and run basic WASM applications
Please follow the instructions below to build the WAMR core on different platforms. -Linux -Zephyr -Mac -VxWorks -AliOS-Things -Docker
Embed WAMR into software production
WAMR application programming library
Samples and demos
Releases, acknowledgment and roadmap
Submit issues and contact the maintainers
Click here to submit. Your feedback is always welcome!
Contact the maintainers: imrt-public@intel.com