Rust Apache-2.0

esp-idf

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

E

esp-rs

Dernière activité 26 sept. 2026
esp-rs/esp-idf

763

étoiles

239

forks

46

issues ouvertes

embeddedembedded-halesp-idfesp32rust

Ce README est souvent en anglais.

Rust on ESP-IDF

Matrix

The Rust crates that build on top of Espressif's ESP-IDF framework, developed together in this repository:

Crate Description CI
esp-idf-sys crates.io Raw Rust bindings for ESP-IDF, plus the cargo-driven build of ESP-IDF itself CI
esp-idf-hal crates.io Safe Rust wrappers for the ESP-IDF drivers, implementing the embedded-hal traits CI
esp-idf-svc crates.io Safe Rust wrappers for the ESP-IDF services, implementing the embedded-svc traits CI

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

Getting started

Community Effort

Please 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:

  • Might be a bit lagging behind the latest stable ESP-IDF version
  • Are (currently) missing HIL tests
  • Need more documentation

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.

Repository layout and history

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.

License

Licensed under either of

at your option.

Projets similaires

no_std Hardware Abstraction Layers for ESP32 microcontrollers

Rustembeddedembedded-halesp32
Eesp-rs
2,1 k étoiles505

A Hardware Abstraction Layer (HAL) for embedded systems

Rust
Rrust-embedded
2,7 k étoiles283

Arduino core for the ESP32 family of SoCs

C++arduinoesp-idfesp32
Eespressif
17,4 k étoiles7,9 k