treVM: Tiny Rust Embedded Virtual Machines with WASM on Variable Resource-Constrained Hardware
Antoine Lavandier, Bastien Buil, Chrystel Gaber, Emmanuel Baccelli

TL;DR
treVM is a Rust-based embedded virtual machine that hosts WebAssembly capsules, enabling secure, high-level code deployment and updates on resource-constrained microcontroller hardware.
Contribution
It introduces a novel scheme to run high-level WebAssembly code on microcontrollers using Rust, supporting secure remote updates and broad hardware compatibility.
Findings
Successfully implemented treVM on various microcontrollers including Arm Cortex-M, RISC-V, and Xtensa.
Demonstrated the feasibility of hosting and updating WebAssembly capsules on embedded devices.
Provided extensive benchmarks validating performance across heterogeneous hardware.
Abstract
Software stacks embedded on microcontroller-based hardware typically provide rudimentary APIs programmed in C/C++, basic connectivity and, sometimes, a firmware update mechanism. Such coarse mechanisms contrast with widely used APIs and more advanced networked interaction expected from software stacks deployed on less resource-constrained hardware (microprocessor-based). In this paper, we aim to bridge this gap by designing treVM, a generic scheme to host high-level WebAssembly code capsules, bolted on a general-purpose Rust embedded software platform, able to run on a large variety of 32-bit microcontrollers. Not only can treVM capsules host highly customizable business logic, but capsules can also be securely updated on demand over the network, on devices already deployed in the field. We implement treVM in Rust, on top of Ariel OS, a general-purpose RTOS, and we publish the code as…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
