Embedded Rust or C Firmware? Lessons from an Industrial Microcontroller Use Case with Ariel OS
Pith reviewed 2026-05-21 01:03 UTC · model grok-4.3
The pith
Rust matches C in memory and speed for industrial microcontroller firmware while using a smaller runtime.
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
Core claim
The paper shows that concurrent C and Rust implementations of the same industrial microcontroller functionality yield comparable results on actual hardware for memory use and execution speed. The Ariel OS runtime in Rust further achieves a smaller footprint than the state-of-the-art bare-metal C stack traditionally employed in this domain.
What carries the argument
Side-by-side development of functionally equivalent C and Rust firmware for the same microcontroller task, with direct hardware measurements and comparison against the Ariel OS runtime.
If this is right
- Rust can serve as a direct replacement for C in microcontroller firmware without expected increases in memory or slowdowns.
- Ariel OS delivers a portable Rust runtime that is more compact than standard bare-metal C approaches.
- Industrial teams can adopt Rust for its memory safety while maintaining competitive resource usage.
- The approach enables portable firmware across microcontroller variants without performance penalties.
Where Pith is reading between the lines
- Wider use of Rust in this domain could reduce firmware vulnerabilities over time due to built-in safety checks.
- The results invite similar head-to-head tests on other embedded platforms or for power consumption metrics.
- Long-term maintenance costs might favor Rust even if initial development effort is similar.
Load-bearing premise
The two teams produced functionally equivalent implementations and applied comparable levels of optimization effort.
What would settle it
An independent replication study that measures memory and speed on the same hardware after equal optimization time for both languages.
read the original 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 in this context. It is concluded that Rust is a sound choice today for firmware development in this domain.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The paper reports on a concurrent industrial case study in which two teams developed identical IoT microcontroller firmware functionality—one in C and one in Rust using Ariel OS—over several months of iterative development. Hardware measurements of memory footprint and execution speed are presented, leading to the claims that there is no strong reason to prefer C over Rust on these metrics and that Ariel OS provides a smaller footprint than traditional bare-metal C stacks, making Rust a sound choice for this domain.
Significance. If the comparability of the implementations can be established, the work supplies useful empirical data from a real industrial setting on Rust versus C for resource-constrained firmware. The direct hardware measurements and the demonstration of Ariel OS efficiency constitute concrete, falsifiable contributions that can inform language selection in embedded systems.
major comments (2)
- [Abstract] Abstract: the claim that 'the analysis and measurements on hardware indicate no strong reason to prefer C over Rust' is not accompanied by error bars, statistical details, or quantitative evidence that optimization effort was equalized between the teams. This leaves the attribution of performance parity to language choice only partially verifiable.
- [Development and results sections] Development and results sections: the paper notes iterative development over months but supplies no quantitative metrics (person-hours, team experience levels, compiler flags, or code-size breakdowns) to demonstrate that the C and Rust implementations are functionally equivalent and were optimized to comparable degrees. Without such evidence the central language-comparison claim rests on an unverified assumption.
minor comments (2)
- Add explicit descriptions of the measurement methodology, including the exact hardware platform, compiler versions, and optimization settings used for each implementation.
- Ensure all figures reporting footprint and timing results include clear legends, units, and any relevant baseline configurations.
Simulated Author's Rebuttal
We thank the referee for the detailed and constructive review. We address the major comments point by point below, indicating revisions where appropriate to improve the clarity and verifiability of our claims.
read point-by-point responses
-
Referee: [Abstract] Abstract: the claim that 'the analysis and measurements on hardware indicate no strong reason to prefer C over Rust' is not accompanied by error bars, statistical details, or quantitative evidence that optimization effort was equalized between the teams. This leaves the attribution of performance parity to language choice only partially verifiable.
Authors: The measurements reported are single-run hardware measurements on the target microcontroller, which are deterministic for the given firmware and inputs. We did not include error bars because variability across runs is negligible in this context, but we will add a description of the measurement setup and tools used (e.g., specific debug probes and profiling methods) to the results section and reference it in the abstract. Regarding optimization effort, the teams had comparable expertise and worked under similar industrial constraints; however, we agree that explicit metrics would strengthen the claim. We will revise the abstract to state that the results are based on the observed implementations without claiming equal optimization effort was proven, and point to the development process description. revision: partial
-
Referee: [Development and results sections] Development and results sections: the paper notes iterative development over months but supplies no quantitative metrics (person-hours, team experience levels, compiler flags, or code-size breakdowns) to demonstrate that the C and Rust implementations are functionally equivalent and were optimized to comparable degrees. Without such evidence the central language-comparison claim rests on an unverified assumption.
Authors: We will expand the development section to include the compiler optimization flags used for both implementations (e.g., -Os for C and equivalent Rust flags). Code-size breakdowns are partially provided in the results; we will add more granular details on RAM and flash usage components where available. Team experience is described as both teams consisting of professional embedded software engineers with several years of experience in their languages. Unfortunately, exact person-hours were not tracked during the project, as the emphasis was on functional delivery rather than time accounting. Functional equivalence was verified through identical requirement specifications, shared test cases, and hardware-in-the-loop testing. We will note these aspects and any limitations explicitly in the revised manuscript. revision: partial
- Exact person-hour expenditures for each team, as these metrics were not recorded during the industrial development process.
Circularity Check
No circularity: empirical case study with direct hardware measurements
full rationale
The paper is an empirical case study comparing concurrent C and Rust implementations of the same microcontroller firmware functionality, supported by hardware measurements of memory footprint and execution speed. No derivation chain, equations, fitted parameters, or predictions appear in the provided abstract or description. Claims rest on observed data from two teams rather than any self-definitional reduction, fitted input renamed as prediction, or load-bearing self-citation. The work is self-contained against external benchmarks (direct hardware runs) and does not invoke uniqueness theorems or ansatzes from prior author work.
Axiom & Free-Parameter Ledger
axioms (1)
- domain assumption The two teams produced functionally equivalent implementations with comparable optimization effort.
Lean theorems connected to this paper
-
IndisputableMonolith/Foundation/RealityFromDistinction.leanreality_from_one_distinction unclear?
unclearRelation between the paper passage and the cited Recognition theorem.
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.
-
IndisputableMonolith/Cost/FunctionalEquation.leanwashburn_uniqueness_aczel unclear?
unclearRelation between the paper passage and the cited Recognition theorem.
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
What do these tags mean?
- matches
- The paper's claim is directly supported by a theorem in the formal canon.
- supports
- The theorem supports part of the paper's argument, but the paper may add assumptions or extra steps.
- extends
- The paper goes beyond the formal theorem; the theorem is a base layer rather than the whole result.
- uses
- The paper appears to rely on the theorem as machinery.
- contradicts
- The paper's claim conflicts with a theorem or certificate in the canon.
- unclear
- Pith found a possible connection, but the passage is too broad, indirect, or ambiguous to say the theorem truly supports the claim.
Reference graph
Works this paper leans on
-
[1]
ST AIoT Craft-A No-Code/Low-Code Cloud Solution for Edge AI Management in Smart Sensors
M. Chowdhary et al. "ST AIoT Craft-A No-Code/Low-Code Cloud Solution for Edge AI Management in Smart Sensors." Proceedings of ACM SenSys, 2025
work page 2025
-
[2]
Ariel OS: An Embedded Rust Operating System for Networked Sensors & Multi-Core Microcontrollers
E. Frank et al. "Ariel OS: An Embedded Rust Operating System for Networked Sensors & Multi-Core Microcontrollers." Proceedings of IEEE DCOSS-IoT, 2025
work page 2025
-
[3]
Rust in Android: Move Fast and Fix Things ,
J.Van Der Stoep, “ Rust in Android: Move Fast and Fix Things ,” in Google Security Blog, Nov. 2025. Online: https://security.googleblog.com/2025/11/rust-in-android-move-fast-fix-things.html
work page 2025
- [4]
-
[5]
SensorTile.box PRO with multi-sensors and wireless connectivity
STMicroelectronics, “SensorTile.box PRO with multi-sensors and wireless connectivity”, Online: https://www.st.com/resource/en/data_brief/steval-mkboxpro.pdf
-
[6]
6-axis inertial measurement unit
STMicroelectronics, LSM6DSV16X Datasheet DS13510, “6-axis inertial measurement unit”, Online: https://www.st.com/resource/en/datasheet/lsm6dsv16x.pdf
-
[7]
Online: https://www.st.com/en/development-tools/stm32cubemx.html
STM32CubeMX: Stm32 Cube initialization code generator. Online: https://www.st.com/en/development-tools/stm32cubemx.html
-
[8]
Embassy Framework: https://github.com/embassy-rs/embassy
-
[9]
Online: https://github.com/STMicroelectronics/st-mems-rust-drivers
STMicroelectronics MEMS Rust Drivers Repository. Online: https://github.com/STMicroelectronics/st-mems-rust-drivers
-
[10]
Online: https://github.com/Azure/opendigitaltwins-dtdl
DTDL: Digital Twins Definition Language. Online: https://github.com/Azure/opendigitaltwins-dtdl
-
[11]
Online: https://learn.microsoft.com/en-us/previous-versions/azure/iot/overview-iot-plug-and-play
Azure IoT Plug and Play (PnP). Online: https://learn.microsoft.com/en-us/previous-versions/azure/iot/overview-iot-plug-and-play
-
[12]
Online: https://github.com/kgabis/parson/
Parson library. Online: https://github.com/kgabis/parson/
-
[13]
Rust for embedded systems: Current state and open problems
A. Sharma et al. "Rust for embedded systems: Current state and open problems." Proceedings of ACM SIGSAC, 2024
work page 2024
-
[14]
Tighten Rust’s belt: shrinking embedded Rust binaries
H. Ayers et al. "Tighten Rust’s belt: shrinking embedded Rust binaries." Proceedings of ACM SIGPLAN/SIGBED LCTES, 2022
work page 2022
-
[15]
Online: https://doc.rust-lang.org/book/ch17-00-async-await.html, 2026
Rust Asynchronous Programming. Online: https://doc.rust-lang.org/book/ch17-00-async-await.html, 2026
work page 2026
-
[16]
Online: https://github.com/rtic-rs/rtic, 2026
RTIC. Online: https://github.com/rtic-rs/rtic, 2026
work page 2026
-
[17]
Ownership is theft: Experiences building an embedded OS in Rust,
A. Levy et al., “Ownership is theft: Experiences building an embedded OS in Rust,” in ACM PLOS, 2015
work page 2015
-
[18]
Online: https://crates.io, 2026
Rust Community Crate Registry. Online: https://crates.io, 2026
work page 2026
-
[19]
Online: https://www.st.com/en/embedded-software/x-cube-mems1.html, 2026
XCube MEMS. Online: https://www.st.com/en/embedded-software/x-cube-mems1.html, 2026
work page 2026
- [20]
-
[21]
Online https://www.cyberresilienceact.eu/
EU Cyber Resilience Act. Online https://www.cyberresilienceact.eu/
- [22]
-
[23]
Online: https://github.com/rust-embedded/heapless
Heapless crate. Online: https://github.com/rust-embedded/heapless
-
[24]
Oonline: https://www.st.com/en/evaluation-tools/x-nucleo-iks4a1.html
X-NUCLEO-IKS4A1 MEMS expansion board for STM32 Nucleo. Oonline: https://www.st.com/en/evaluation-tools/x-nucleo-iks4a1.html
- [25]
-
[26]
Online: https://github.com/RazrFalcon/cargo-bloat
Cargo-bloat. Online: https://github.com/RazrFalcon/cargo-bloat
-
[27]
Online: https://github.com/embassy-rs/static-cell
StaticCell. Online: https://github.com/embassy-rs/static-cell
-
[28]
Online: https://github.com/rust-embedded-community/serde-json-core
Serde JSON Core. Online: https://github.com/rust-embedded-community/serde-json-core
- [29]
-
[30]
Clerk Maxwell, A Treatise on Electricity and Magnetism, 3rd ed., vol
J. Clerk Maxwell, A Treatise on Electricity and Magnetism, 3rd ed., vol. 2. Oxford: Clarendon, 1892, pp.68--73
-
[31]
I. S. Jacobs and C. P. Bean, ``Fine particles, thin films and exchange anisotropy,'' in Magnetism, vol. III, G. T. Rado and H. Suhl, Eds. New York: Academic, 1963, pp. 271--350
work page 1963
-
[32]
Elissa, ``Title of paper if known,'' unpublished
K. Elissa, ``Title of paper if known,'' unpublished
-
[33]
Nicole, ``Title of paper with only first word capitalized,'' J
R. Nicole, ``Title of paper with only first word capitalized,'' J. Name Stand. Abbrev., in press
- [34]
-
[35]
Young, The Technical Writer's Handbook
M. Young, The Technical Writer's Handbook. Mill Valley, CA: University Science, 1989
work page 1989
-
[36]
D. P. Kingma and M. Welling, ``Auto-encoding variational Bayes,'' 2013, arXiv:1312.6114. [Online]. Available: https://arxiv.org/abs/1312.6114
work page internal anchor Pith review Pith/arXiv arXiv 2013
-
[37]
Liu, ``Wi-Fi Energy Detection Testbed (12MTC),'' 2023, gitHub repository
S. Liu, ``Wi-Fi Energy Detection Testbed (12MTC),'' 2023, gitHub repository. [Online]. Available: https://github.com/liustone99/Wi-Fi-Energy-Detection-Testbed-12MTC
work page 2023
-
[38]
``Treatment episode data set: discharges (TEDS-D): concatenated, 2006 to 2009.'' U.S. Department of Health and Human Services, Substance Abuse and Mental Health Services Administration, Office of Applied Studies, August, 2013, DOI:10.3886/ICPSR30122.v2
-
[39]
K. Eves and J. Valasek, ``Adaptive control for singularly perturbed systems examples,'' Code Ocean, Aug. 2023. [Online]. Available: https://codeocean.com/capsule/4989235/tree
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.