Embedded Rust in Production
summary
Akiles runs Rust on battery-powered access devices for over four years and has 25,000 devices in the field, using the embassy executor for cooperative async, multiple executors for priority work, and embassy-boot to swap partitions safely with commit-on-success. Build tooling includes a custom cargo-batch for parallel multi-target builds, firmware sizes of ~300–420 KB, remote flashing and factory programming via probar, and compact crash logs using DFMT; these systems work reliably in production.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 3:32Audience Rust experience
- 4:56Why Rust for embedded
- 7:52Embedded ecosystem
- 10:23Hardware abstraction layers
- 13:15Async Rust power efficiency
- 16:15Async futures and executors
- 19:27Embassy project overview
- 26:16Achilles company overview
- 28:29Code structuring patterns
- 33:55Development workflow
- 35:45Testing strategies
- 36:51Firmware updates
- 39:00Debugging crashes
- 41:31Debug tools improvement
- 42:37Optimizing for constraints
- 45:05Legacy C to Rust rewrite
- 46:52Pain points and challenges
- 48:21Summary
related talks
26mIntroducing Rust into a Legacy Embedded System
29mRust: Embedded, Async, All the Way
36mIt's Embedded Rust Time
43mClosing Keynote
59mRust in Production
01h 09mThe Rust Programming Language: Origin, History and Why it's so important for Arm today
17mRust in Production
12mLightning Talk: Rust Will Solve All Your Problems, Possibly. Arm’s Journey to Using...
