Embedded Rust or C Firmware? Lessons from an Industrial Microcontroller Use Case

· systems · Source ↗

TLDR

  • arXiv paper finds Rust matches C on memory footprint and execution speed for IoT microcontroller firmware, with Ariel OS beating bare-metal C stack size.

Key Takeaways

  • Paper (arXiv:2604.25679) from STMicro, Politecnico di Torino, Freie Universitat Berlin, and Inria runs a controlled parallel-team study over several months on industrial IoT firmware.
  • Two teams built identical functionality concurrently: one in C, one in Rust on the same microcontroller hardware; measurements showed no strong reason to prefer C on footprint or speed.
  • Ariel OS, a Rust system runtime, produced a smaller binary footprint than the traditional bare-metal C stack used as the baseline.
  • Conclusion is that Rust is production-viable today for microcontroller firmware in this domain, though the result rests on a single industrial case study.

Hacker News Comment Review

  • Commenters flagged volunteer/selection bias: the Rust team’s skill level relative to the C team is uncontrolled, which limits how far the performance parity result generalizes.
  • Toolchain coverage is a real gap: many MCUs, especially older or proprietary platforms, lack a viable Rust compiler target, making C the only option regardless of Rust’s quality.
  • High-integrity embedded practitioners noted Rust still lacks a stable language spec and mature formal verification tooling, making Ada/SPARK2014 the safer pick for mission-critical or long-lived deployments.

Notable Comments

  • @noosphr: raises long-horizon risk: Rust’s rapid evolution is a liability for firmware expected to run for decades.
  • @eggy: their team chose Ada/SPARK2014 over Rust for Cortex-M real-time work; cites missing stable spec and lack of formal verification legacy.

Original | Discuss on HN