// the find
lobaro/FreeRTOS-rust
Rust crate for FreeRTOS
Rust bindings and build tooling for running FreeRTOS on embedded targets. It compiles the FreeRTOS C kernel from source and links it against your Rust application, using the FreeRTOS heap as Rust's global allocator. Aimed at embedded developers who want Rust on STM32, nRF9160, or similar Cortex-M hardware but aren't ready to leave FreeRTOS behind.
1. The build approach is honest — it compiles the real FreeRTOS C sources rather than reimplementing the kernel in Rust, so you get the actual scheduler with its known behavior and port maturity. 2. FreeRTOS heap integration as the global Rust allocator is the right call; it avoids two competing allocators fighting over the same RAM. 3. Working examples across Cortex-M3, M4, M33, and even a Windows simulator make it genuinely usable as a starting point rather than a proof of concept. 4. The two-crate split (freertos-cargo-build vs freertos-rust) keeps build-time concerns out of the runtime dependency.
1. You're still writing unsafe Rust against a C scheduler — the bindings are thin wrappers and the type system doesn't enforce FreeRTOS object lifetimes or task ownership, so use-after-delete bugs are entirely possible. 2. The version pinned in Cargo.toml examples is '*', which will silently pull breaking changes; no version discipline on crates.io makes production use risky. 3. 478 stars and the last meaningful activity shows slow maintenance — if FreeRTOS ships a new port or API change, this crate will lag. embassy-rtos or RTIC are more actively maintained alternatives for anyone starting fresh. 4. No async/await story at all — you're writing callback-style task code in a language that now has first-class async, which feels like a step backwards if your target MCU has enough RAM to run the executor.