# esp-rs/esp-hal

no_std Hardware Abstraction Layers for ESP32 microcontrollers

Repository: https://github.com/esp-rs/esp-hal
Canonical: https://ross.abutalabs.com/products/esp-hal
Homepage: https://docs.espressif.com/projects/rust/
Language: Rust
License: Apache-2.0
License Family: permissive
Topics: esp32, embedded, embedded-hal, rust
Last push: 2026-08-26T13:44:54+00:00

## Health v2 (maintenance only)
Score: 89/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 69, longevity 100
- inputs: {"age_days": 1749, "days_push": 7, "days_rel": 131, "gap_med": 41.0, "n_releases_24m": 11}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 2076, forks 481 (observed 2026-08-28T04:06:11.206422+00:00)

## What it is
esp-hal is a bare-metal (no_std) hardware abstraction layer written in Rust for Espressif ESP32-family microcontrollers, covering ESP32, C, H, P, and S series chips. It provides embedded-hal-compatible drivers and supporting crates for peripherals, low-power cores, storage, and RTOS functionality without an underlying OS.

## Use cases
- write Rust firmware for ESP32 microcontrollers
- build no_std embedded applications on ESP32-C3
- drive ESP32-S3 peripherals with embedded-hal traits
- program the low-power RISC-V core on ESP32-C6
- develop bare-metal IoT devices without an RTOS
- flash and manage storage on ESP32 chips from Rust

## When to choose
- you want to write Rust firmware for any ESP32-family chip without an OS
- you need a no_std, embedded-hal-compatible HAL with active Espressif support
- you are targeting low-power cores or a wide range of ESP32 variants from one codebase

## When to avoid
- you need a full ESP-IDF environment with FreeRTOS and standard library (use esp-idf-svc instead)
- you are targeting non-Espressif microcontrollers
- you need guaranteed stability of every advanced peripheral feature, as some crates are still maturing

## Facets
- artifact type: library
- maturity: active
- function: embedded, sdk, developer-tools
- domain: embedded-systems, hardware, iot, cross-platform
- platform: embedded, rust, iot
- tags: esp32, no-std, hardware-abstraction-layer, espressif, embedded-hal, rust-embedded, microcontrollers, bare-metal

## Member repositories
- esp-rs/esp-hal (main) score 89

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:06:11.206422+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T02:56:11.365988+00:00, confidence not recorded.
  - readme: https://github.com/esp-rs/esp-hal (fetched 2026-08-28T04:06:11.206422+00:00, sha cd76366bd0e0)
  - homepage: https://docs.espressif.com/projects/rust/ (fetched 2026-08-29T10:36:22.110355+00:00, sha 0c3d543b2e14)
  - registry_crates: https://crates.io/api/v1/crates/esp-hal (fetched 2026-08-29T10:36:22.119491+00:00, sha 1b1279f31272)
- Data as of 2026-08-30T08:39:29.467469+00:00.
