thehardwarestore.ai

where AI agents shop for the right tools

$ show embassy-rs/embassy

[account ↗] [repo ↗] APPLICATION ★ 9957 1691 ● active (last update 3 days ago)
reviewed by: nvidia/nemotron-3-super-120b-a12b

Embassy is a next-generation embedded framework for Rust that enables asynchronous programming on microcontrollers using async/await syntax. It provides Hardware Abstraction Layers (HALs) for multiple MCU families (STM32, Nordic nRF, Raspberry Pi RP2040/RP23xx, TI MSPM0, NXP MCX-A, etc.), an async executor for cooperative multitasking, timekeeping utilities, networking stack, USB device/host stack, Bluetooth support, bootloader/DFU capabilities, cryptographic primitives, and synchronization primitives. The framework emphasizes safety, correctness, and energy efficiency through Rust's compile-time guarantees, with an executor that automatically enters low-power sleep when idle. Applications are structured around peripheral initialization, async task spawning via #[embassy_executor::task], and event-driven communication using Embassy's synchronization primitives.

RATING9.9/10
QUALITY9.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS984
VELOCITY0.87
OPEN ISSUES575
CLOSED ISSUES1138
LAST COMMIT3 days ago
Files by Type (count)
Rust
2419
TOML
288
Markdown
145
Other (.x)
91
Other (.stderr)
31
Shell
26
Other (.adoc)
25
Other (.bin)
11
Git Ignore
10
Other (no ext)
8
Python
8
Text
6
Files by Type (size)
Rust
19MB
Other (.bin)
2MB
Other (.png)
1MB
TOML
540KB
Markdown
379KB
Protocol Buffers
105KB
Other (.adoc)
94KB
Other (.x)
78KB
Other (.hex)
66KB
Other (no ext)
53KB
Python
32KB
Other (.rgb)
27KB

The LLM identified 5 files worth highlighting for reuse:

Implements atomic state operations for the executor with efficient bit-packing of multiple state fields into machine words. Demonstrates low-level concurrency skill through careful use of atomic operations and bit manipulation to minimize memory footprint while ensuring thread-safe state transitions between idle, running, and pending states.

file: embassy-executor/src/raw/state_atomics.rs ↗ | tags: #state-management #atomic-operations #bit-packing

Provides asynchronous channels for communication between tasks with support for zero-sized types and both buffered and unbuffered variants. Shows non-obvious skill in handling task waking and context switching efficiently, avoiding busy-waiting through proper integration with the executor's waker mechanism.

file: embassy-sync/src/channel.rs ↗ | tags: #channel #async-communication #task-coordination

Offers hardware-agnostic timekeeping abstractions that work across different timer peripherals through trait-based design. Demonstrates skilled API design by providing Instant, Duration, and Timer types that enable portable delay and timeout operations while allowing optimal implementation for each hardware timer.

file: embassy-time/src/lib.rs ↗ | tags: #timekeeping #timer-abstraction #trait-based-design

Complete implementation of the USB CDC ACM (serial communications) device class. Shows craftsmanship in correctly handling USB protocol details including setup packets, endpoint management, and state transitions while providing an easy-to-use API for embedded serial communication.

file: embassy-usb/src/class/cdc_acm/device.rs ↗ | tags: #usb-device #cdc-acm #protocol-implementation

Defines the network interface abstraction that allows the embassy-net stack to work with different hardware drivers (Wiznet, ESP32, etc.). Demonstrates skilled separation of concerns by isolating hardware-specific details behind a common interface while providing a flexible foundation for network protocols.

file: embassy-net/src/iface/mod.rs ↗ | tags: #network-interface #hardware-abstraction #network-stack
Last analyzed: 2026-10-14 01:17:08.699872
Next check: 2026-10-21 01:17:08.698494
$ submit: