finds.dev← search

// the find

drone-os/drone-core

★ 490 · Rust · Apache-2.0 · updated Jun 2023

The core crate for Drone, an Embedded Operating System.

Drone is a Rust RTOS for bare-metal embedded targets, built around async/await and fibers rather than the traditional RTOS thread model. It targets ARM Cortex-M specifically and takes a strongly opinionated approach: no dynamic dispatch, ownership-based register access, and a token system that enforces peripheral exclusivity at compile time. For developers who want async Rust on microcontrollers without embassy's approach, this is the main alternative.

The register abstraction is genuinely well-designed — peripheral tokens enforce at compile time that you can't have two parts of the firmware fighting over the same register. The loom-based concurrency tests (loom_spsc_*, loom_mutex) are a real differentiator; most embedded Rust projects skip this entirely. Fiber-based async without a heap allocator is clever and the stream primitives (ring buffer, pulse) map cleanly to real interrupt-driven patterns. The macro system for bitfields and peripheral maps eliminates a whole class of bit-twiddling bugs.

Last commit June 2023, badge still says 'actively-developed' — that's a red flag. The README is essentially a stub pointing to external docs, and the Drone Book URL may be dead or stale. Ecosystem lock-in is real: you need drone-cortexm, drone-stm32, etc., and if any of those are equally stale you're on your own. No mention of Cortex-M7 or any non-STM32 targets suggests the ecosystem never got broad enough to matter outside one chip family.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →