Files
wamr/README.md
2019-09-07 09:30:06 +08:00

73 lines
2.7 KiB
Markdown

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.
<img src="./doc/pics/architecture.PNG" width="80%" height="80%">
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!](https://github.com/intel/wasm-micro-runtime/issues/new)
Contact the maintainers: imrt-public@intel.com