Rust is “A language empowering everyone to build reliable and efficient software“. Even on a microcontroller! Using tools like “cargo embed” and “probe-rs”, setting up a toolchain on your local machine, for developing and flashing firmware, is a matter of a few simple commands.
Can you take that to the cloud? Sure you can, Eclipse Che has you covered and supports Rust too. But, who attaches your STM32 developer board to the USB port of the AWS node you are running this on?
WASM to the rescue! Using Drogue IoT’s actor based firmware model, and the async Embassy Rust foundation layer, you can create firmware, which runs on Cortex-M, RISC-V, but also on AMD64 targets, and WASM! Directly in the browser you run your IDE session with.
Your actors (like a button or an LED) get replaced with browser based implementations, and your application logic stays exactly the same. Does this completely replace your local setup? Probably not, but it can be a nice addition, and shows the power of Rust, Embassy, Drogue IoT and hardware abstraction layers.
In this talk, we will walk you through the basics of Rust on embedded systems, asynchronous executors and the actor based development model of Drogue Device. Based on an example project, we will show what needs to be done to enable WASM and provide web based alternatives to the hardware based actors. Running this in Eclipse Che at the end of the session.