This project ia an attempt to aggregate end to end toolchains for various programming languages to enable them on microcontrollers with special focus on ESP32 chips.
The idea is to provide examples, dockerfiles and instructions, so it shoudl be possible to follow simple process:
(1) Build an example for selected language to wasm file.
(2) Run compiled example on host machine
(3) Run compiled example on ESP32 simulator (QEMU) on host machine using using selected runtime
(4) Build and run example on ESP32 target using selected runtime
(1) Provide a template of using ESP IDF test framework with Linux and QEMU.
(2) Study and define common API for IoT
(3) Performance comparison between various language implementations, WASM and non-WASM runtimes
(4) Swagger-like API definition
(1) Evolve into an underlying platform that can be used by maintainers of other platforms
Implementations | |
---|---|
C++ | Emscripten |
Cheerp | |
Smooth | |
Native | |
C# | Blazor |
NanoFramework | |
Go | TinyGo |
Haskell | Haskell |
Java | Java |
Kotlin | Kotlin |
Python | Python |
Rust | Rust |
TypeScript | TypeScript |
Haxe | Haxe |
PHP | PHP |
Ruby | Ruby |
Swift | Swift |
x86 | ESP32 | |
---|---|---|
EOSVM | ||
Fizzy | ||
Wasm3 | ||
wac | ||
wasmrt | ||
wasmvm | ||
WAVM | ||
WAMR |
Check details here
https://github.com/EOSIO/eos-vm
https://github.com/wasmx/fizzy
https://github.com/wasm3/wasm3
Tests running in QEMU
https://github.com/wasm3/wasm3/blob/9dcfce271c2fac86823725fc9ec0f75309d820e4/.github/workflows/tests.yml#L491-L516
https://github.com/kanaka/wac
https://github.com/rhitchcock/wasmrt
https://github.com/WasmVM/WasmVM
https://github.com/WAVM/WAVM
https://github.com/bytecodealliance/wasm-micro-runtime
TBD
TBD
Suite of tools for WebAssembly:
https://github.com/WebAssembly/wabt
https://renode.io
https://wokwi.com
https://www.tinkercad.com