WebAssembly Micro Runtime (WAMR)
Go to file
2019-09-07 09:30:06 +08:00
core Add build configuration for Mac (#110) 2019-09-06 16:51:36 +08:00
doc Implement memory profiler, optimize memory usage, modify code indent (#35) 2019-05-23 05:03:31 -05:00
samples Fix issue about illegal load of EXC_RETURN into PC on stm32 board (#98) 2019-08-14 16:14:44 +08:00
test-tools add iot app store demo (#96) 2019-08-14 10:37:39 +08:00
.gitignore Add build configuration for Mac (#110) 2019-09-06 16:51:36 +08:00
CONTRIBUTING.md set up readme, contributing and bug template. 2019-05-08 14:04:35 +08:00
Dockerfile Initial Dockerfile (#97) 2019-08-14 10:34:36 +08:00
LICENSE code cleanup 2019-05-07 14:15:28 +08:00
README.md Update README.md 2019-09-07 09:30:06 +08:00

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