Are We RTOS Yet?
The state of Real Time Operating Systems in Rust.
Status
We are not RTOS, yet.
There are only a handful of RTOSs written in rust, and only one of them compiles on stable.
The future is bright for RTOSs in rust, the language has many features that benefit RTOS development:
- Procedural macros allow RTIC to guarantee deadlock-free execution at compile time.
no_std
executors allow embassy and drone to provide cooperative scheduling withawait
syntaxconst
functions allow R3 to configure the RTOS as much as possible at compile time
Ecosystem
Many of these are not true RTOSs:
- Some are not real-time
- Some are more accurately described as execution frameworks instead of operating systems
Name | Native Rust | Compiles on stable | License | Language(s) |
---|---|---|---|---|
aerugo | ✅ | ❌ | MIT OR Apache-2.0 | en |
bern | ✅ | ❌ | MIT | en |
drone | ✅ | ❌ | MIT OR Apache-2.0 | en |
embassy | ✅ | ✅ | MIT OR Apache-2.0 | en |
freertos | ❌ | Partial | MIT | en |
hubris | ✅ | ❌ | MPL-2.0 | en |
lilos | ✅ | ✅ | MPL-2.0 | en |
MnemOS | ✅ | ✅ | MIT OR Apache-2.0 | en |
R3 | ✅ | ❌ | MIT OR Apache-2.0 | en |
RIOT-OS | ❌ | ✅ | LGPL-2.1 | en |
rt | ❌ | ✅ | Apache-2.0 | en |
RTIC | ✅ | ✅ | MIT OR Apache-2.0 | en, ru |
Tock | ✅ | Partial | MIT OR Apache-2.0 | en |
tornado | ✅ | ❌ | Apache-2.0 OR MulanPSL-2.0 | zh |
Wasefire | ✅ | ❌ | Apache-2.0 | en |
zephyr | ❌ | ✅ | Apache-2.0 | en |