embedded-hal implementation for Rust on ESP32 and ESP-IDF
See the codeThe Rust crates that build on top of Espressif's ESP-IDF framework, developed together in this repository:
| Crate | Description | CI |
|---|---|---|
esp-idf-sys | Raw Rust bindings for ESP-IDF, plus the cargo-driven build of ESP-IDF itself | |
esp-idf-hal | Safe Rust wrappers for the ESP-IDF drivers, implementing the embedded-hal traits | |
esp-idf-svc | Safe Rust wrappers for the ESP-IDF services, implementing the embedded-svc traits |
The crates form a single Cargo workspace. Each crate keeps its own README.md and CHANGELOG.md in its directory, while the build configuration (.cargo/config.toml, sdkconfig.defaults, the partition table) and the examples of all crates (in the examples crate) are shared at the repository root. Build and run the examples from the repository root:
MCU=esp32c3 cargo espflash flash --target riscv32imc-esp-espidf --bin wifi --monitor
README.md of each crate for its features and ESP-IDF version supportPlease note that all esp-idf-* crates are a community effort, in that Espressif puts little to no paid developer time in these.
So while ESP-IDF itself is very popular and well tested, the esp-idf-* crates:
For a HAL which is officially supported by Espressif (as in - with paid developer time), please look at esp-hal. Keep in mind that esp-hal is no_std-only, does not use ESP-IDF and requires async programming.
This repository continues the former esp-idf-hal repository, whose history is unchanged: for esp-idf-hal files, git log --follow walks past the commit that moved them into the esp-idf-hal/ directory.
The histories of the former esp-idf-sys and esp-idf-svc repositories were merged in with their paths rewritten under esp-idf-sys/ and esp-idf-svc/, so plain git log works for their files all the way back.
Release tags are prefixed with the crate name: esp-idf-sys-v0.38.1, esp-idf-hal-v0.47.0, esp-idf-svc-v0.53.0. The pre-monorepo esp-idf-hal tags keep their unprefixed vX.Y.Z names as well.
Licensed under either of
at your option.
376 followers · starred Sep 2024
631 followers · starred Sep 2025
83 followers · starred Jan 2024
167 followers · starred May 2022
embedded-hal implementation for Rust on ESP32 and ESP-IDF
See the codeThe Rust crates that build on top of Espressif's ESP-IDF framework, developed together in this repository:
| Crate | Description | CI |
|---|---|---|
esp-idf-sys | Raw Rust bindings for ESP-IDF, plus the cargo-driven build of ESP-IDF itself | |
esp-idf-hal | Safe Rust wrappers for the ESP-IDF drivers, implementing the embedded-hal traits | |
esp-idf-svc | Safe Rust wrappers for the ESP-IDF services, implementing the embedded-svc traits |
The crates form a single Cargo workspace. Each crate keeps its own README.md and CHANGELOG.md in its directory, while the build configuration (.cargo/config.toml, sdkconfig.defaults, the partition table) and the examples of all crates (in the examples crate) are shared at the repository root. Build and run the examples from the repository root:
MCU=esp32c3 cargo espflash flash --target riscv32imc-esp-espidf --bin wifi --monitor
README.md of each crate for its features and ESP-IDF version supportPlease note that all esp-idf-* crates are a community effort, in that Espressif puts little to no paid developer time in these.
So while ESP-IDF itself is very popular and well tested, the esp-idf-* crates:
For a HAL which is officially supported by Espressif (as in - with paid developer time), please look at esp-hal. Keep in mind that esp-hal is no_std-only, does not use ESP-IDF and requires async programming.
This repository continues the former esp-idf-hal repository, whose history is unchanged: for esp-idf-hal files, git log --follow walks past the commit that moved them into the esp-idf-hal/ directory.
The histories of the former esp-idf-sys and esp-idf-svc repositories were merged in with their paths rewritten under esp-idf-sys/ and esp-idf-svc/, so plain git log works for their files all the way back.
Release tags are prefixed with the crate name: esp-idf-sys-v0.38.1, esp-idf-hal-v0.47.0, esp-idf-svc-v0.53.0. The pre-monorepo esp-idf-hal tags keep their unprefixed vX.Y.Z names as well.
Licensed under either of
at your option.
376 followers · starred Sep 2024
631 followers · starred Sep 2025
83 followers · starred Jan 2024
167 followers · starred May 2022