{"paper":{"title":"Embedded Rust or C Firmware? Lessons from an Industrial Microcontroller Use Case with Ariel OS","license":"http://arxiv.org/licenses/nonexclusive-distrib/1.0/","headline":"Rust matches C in microcontroller firmware memory use and execution speed.","cross_cats":[],"primary_cat":"cs.OS","authors_text":"Bipin Thapa, Daniele Alfonso, Emmanuel Baccelli, Kaspar Schleiser, Licio Mapelli, Lorenzo Bini, Romain Fouquet","submitted_at":"2026-04-28T14:09:11Z","abstract_excerpt":"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 r"},"claims":{"count":4,"items":[{"kind":"strongest_claim","text":"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.","source":"verdict.strongest_claim","status":"machine_extracted","claim_id":"C1","attestation":"unclaimed"},{"kind":"weakest_assumption","text":"That the two teams produced functionally equivalent implementations and that the specific industrial IoT microcontroller use case is representative of broader firmware development scenarios.","source":"verdict.weakest_assumption","status":"machine_extracted","claim_id":"C2","attestation":"unclaimed"},{"kind":"one_line_summary","text":"Rust firmware for industrial microcontrollers matches C in memory use and execution speed, with Ariel OS offering a smaller footprint than standard bare-metal C stacks.","source":"verdict.one_line_summary","status":"machine_extracted","claim_id":"C3","attestation":"unclaimed"},{"kind":"headline","text":"Rust matches C in microcontroller firmware memory use and execution speed.","source":"verdict.pith_extraction.headline","status":"machine_extracted","claim_id":"C4","attestation":"unclaimed"}],"snapshot_sha256":"1ff0016e21490a6a1d8074c099f058adcee8b138fe5a992b3b21d4c800755968"},"source":{"id":"2604.25679","kind":"arxiv","version":2},"verdict":{"id":"e97d9bad-507c-46a4-ad26-2de037d83a6a","model_set":{"reader":"grok-4.3"},"created_at":"2026-05-07T13:40:48.127451Z","strongest_claim":"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.","one_line_summary":"Rust firmware for industrial microcontrollers matches C in memory use and execution speed, with Ariel OS offering a smaller footprint than standard bare-metal C stacks.","pipeline_version":"pith-pipeline@v0.9.0","weakest_assumption":"That the two teams produced functionally equivalent implementations and that the specific industrial IoT microcontroller use case is representative of broader firmware development scenarios.","pith_extraction_headline":"Rust matches C in microcontroller firmware memory use and execution speed."},"integrity":{"clean":true,"summary":{"advisory":0,"critical":0,"by_detector":{},"informational":0},"endpoint":"/pith/2604.25679/integrity.json","findings":[],"available":true,"detectors_run":[{"name":"doi_compliance","ran_at":"2026-05-19T20:52:29.733840Z","status":"completed","version":"1.0.0","findings_count":0}],"snapshot_sha256":"06cdab7bca1b3f85e023fb86b89a6c4db3af013880d5d87df1cd1ea17e1834d7"},"references":{"count":0,"sample":[],"resolved_work":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57","internal_anchors":0},"formal_canon":{"evidence_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"author_claims":{"count":0,"strong_count":0,"snapshot_sha256":"258153158e38e3291e3d48162225fcdb2d5a3ed65a07baac614ab91432fd4f57"},"builder_version":"pith-number-builder-2026-05-17-v1"}