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.
SwiftIO is a Swift framework for microcontrollers that provides an easy-to-use interface for hardware peripherals. It abstracts low-level hardware details into Swift classes, allowing developers to interact with GPIO, ADC, PWM, timers, communication protocols (I2C, SPI, UART), and more without dealing with complex register manipulation. The library is structured into a C layer (CSwiftIO) for direct hardware access and a Swift layer that wraps this functionality in a safe, idiomatic API. It emphasizes error handling through Swift's Result type and provides consistent patterns for resource management and peripheral interaction.
Aerugo is a safety-critical real-time operating system (RTOS) for embedded systems, specifically targeting the ARM Cortex-M7 (ATSAMV71) microcontroller. Developed under an ESA contract for space applications, it provides a non-preemptive, cooperative scheduler based on fine-grained tasklets, along with event-driven and cyclic execution, message queues, boolean conditions, and execution monitoring. The system is designed for static allocation, no dynamic memory, and no_std environments. The repository includes a full hardware abstraction layer (HAL) for the SAMV71, covering SPI, UART, PIO, timers, watchdog, XDMAC, PMC, FPU, and more, built on top of an auto-generated peripheral access crate (PAC) from the vendor SVD. A custom Python test framework (calldwell) enables hardware-in-the-loop testing via RTT, GDB, and SSH, with formal requirements traceability embedded in test code. The architecture is modular: the core RTOS kernel resides in `src/`, platform-specific code in `arch/` (Cortex-M and x86), and reusable utilities in `utils/` (bitfield-enum macro, bounded integers, LSM6DSO IMU driver). The HAL uses typestate patterns to enforce correct driver configuration at compile time. The codebase demonstrates strong Rust embedded engineering practices, including manual vtables for type erasure, critical-section-based mutexes, and static resource management via OnceCell. However, it relies on nightly Rust features (const_mut_refs, proc_macro_tracked_env) and the PAC is auto-generated, introducing maintenance risks. The project is actively developed with a comprehensive test suite and real-world demos (e.g., SPI accelerometer with CCSDS telemetry).
This repository is a PHP library for creating and parsing HAL (Hypertext Application Language) documents in JSON and XML formats. It provides a fluent API to build HAL resources with links, embedded resources, and data, and render them to HAL+JSON or HAL+XML. The library also includes factories to parse HAL documents back into PHP objects. The architecture centers around the Hal class as the main resource representation, with separate renderers for JSON and XML, and link/resource containers. Key entry points are the Hal constructor, static fromJson/fromXml methods, and rendering methods asJson/asXml. The library has no external dependencies beyond PSR Link and PHP 8.2+, and is actively maintained with CI testing across multiple PHP versions.