Embedded Rust or C Firmware? Lessons from an Industrial Microcontroller Use Case with Ariel OS
Bipin Thapa, Daniele Alfonso, Lorenzo Bini, Licio Mapelli, Kaspar Schleiser, Romain Fouquet, Emmanuel Baccelli

TL;DR
This study compares Rust and C for microcontroller firmware in an industrial IoT case, finding Rust's ecosystem is mature enough to match C in performance and efficiency, with Ariel OS supporting Rust's viability.
Contribution
It provides empirical evidence that Rust is a practical and efficient alternative to C for microcontroller firmware development, supported by a real-world case study.
Findings
Rust and C have comparable memory and speed performance.
Ariel OS enables a smaller footprint in Rust firmware.
Rust is a viable choice for industrial microcontroller firmware.
Abstract
As Rust gains traction for developing safer systems software, a reality check for the microcontroller hardware segment becomes necessary. How ready is the Rust ecosystem for this segment? Can Rust compete with C in practice? This paper reports on an IoT industrial case study that contributes to answering these questions. Two teams concurrently developing the same functionality (one in C, one in Rust) are analyzed over a period of several months. A comparative analysis of their approaches, results, and iterative efforts is provided. The analysis and measurements on hardware indicate no strong reason to prefer C over Rust for microcontroller firmware on the basis of memory footprint or execution speed. Furthermore, Ariel OS is shown to provide an efficient and portable system runtime in Rust whose footprint is smaller than that of the state-of-the-art bare-metal C stack traditionally used…
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.
