The trait crate that defines the Rust embedded ecosystem's hardware abstraction layer. Provides traits for SPI, I²C, GPIO, serial, PWM, timers, and other peripherals so MCU-specific HAL crates and driver crates can interoperate. Almost every Rust embedded driver crate targets embedded-hal, making them portable across MCU families.
Build new Rust embedded code against embedded-hal 1.0+ and embedded-hal-async; verify which version the MCU's HAL crate targets before committing to a vendor; contribute back when you find gaps in your MCU's HAL coverage.
Distinct from #76 Rust for Embedded (the language). This entry is the trait-ecosystem standard that defines portability in the Rust embedded world. Pairs with #81 Embassy and the RTIC framework.