finds.dev← search

// the find

esp-rs/esp-idf-hal

★ 731 · Rust · Apache-2.0 · updated May 2026

embedded-hal implementation for Rust on ESP32 and ESP-IDF

Safe Rust wrappers over ESP-IDF's C drivers for ESP32 chips — GPIO, SPI, I2C, UART, RMT, I2S, and more. Targets developers who want `std` Rust on ESP32 rather than bare-metal `no_std`. If you're reaching for an ESP32 and want idiomatic Rust without hand-rolling FFI, this is the starting point.

Implements both embedded-hal 0.2 and 1.0 trait sets, so it works with the existing ecosystem of sensor drivers without choosing sides. The peripheral coverage is genuinely wide — RMT with custom encoders, I2S with PDM/TDM modes, PCNT, sleep modes, USB serial — not just the obvious ones. Async support is being added driver by driver rather than bolted on all at once, which keeps the blocking path stable while async matures. The examples directory is unusually complete: NeoPixel over RMT, rotary encoder via PCNT, SSD1306 over I2C, ST7789 over SPI — real hardware patterns, not toy blinks.

Community-maintained with explicitly minimal Espressif paid developer time, so it can lag behind ESP-IDF stable releases and bug fixes depend on volunteer bandwidth. No HIL (hardware-in-the-loop) tests — CI likely builds but doesn't run on real silicon, which means regressions can ship undetected. If you want Espressif's officially supported path, that's esp-hal (no_std, async-first), which has different tradeoffs but actual corporate backing. The async story is still incomplete; which drivers have async and which don't is discoverable only by reading source, not from the docs.

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 →