Lightweight IOT abstractions for Embedded WebAssembly
WebAssembly is a novel safe virtual machine instruction set supported by all major browsers. Its main strengths are safety, portability, compact code representation and fast code execution. These properties also make it an attractive target for execution on small embedded devices. In recent years we have seen several virtual machines such as WARDuino, wasm-micro-runtime and WASM3 supporting WebAssembly on a wide range of embedded devices. Unfortunately the WebAssembly instruction set does not lend itself to implementing IOT communication. In particular there are no instructions in the VM to interrupt code. On embedded devices, interrupts are a fundamental building block of responsive applications.
In this paper we propose the inclusion of a set of IOT primitives which allows WebAssembly to support both synchronous and asynchronous communication primitives. To support the latter, we extended the VM with a lightweight interruption mechanism. We have formalized our extensions and implemented our extension in the WARDuino VM to support both HTTP and MQTT. An example IOT application written in Rust and compiled to WebAssembly running on an ESP32 shows that our extensions are stable and perform well over several testing days.
|Full text (Lightweight IOT abstractions for Embedded WebAssembly.pdf)||685KiB|
Tue 19 OctDisplayed time zone: Central Time (US & Canada) change
09:00 - 10:20
|Reflections on a decade of MoarVM, a runtime for the Raku programming languageKeynote|
|Lightweight IOT abstractions for Embedded WebAssemblyWIP Paper|
Tom Lauwaerts Universiteit Gent, Belgium, Robbert Gurdeep Singh Universiteit Gent, Belgium, Christophe Scholliers Universiteit Gent, BelgiumMedia Attached File Attached