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 RTOS' written in rust, and only one of them compiles on stable.
The future is bright for RTOS' 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 RTOS':
- 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 |