# The Embedded Rust Ecosystem ## What Is `no_std`? When you write normal Rust, you have access to the **standard library** (`std`) — file I/O, networking, threads, heap allocation. On a microcontroller, most of that doesn't exist. There's no operating system, no filesystem, no heap (by default). `no_std` means: *we're opting out of the standard library* and working with just `core` — the subset of Rust that works everywhere, including bare-metal microcontrollers. --- ## The Landscape The embedded Rust ecosystem is organized around a few key GitHub organizations: | Organization | What They Do | |-------------|-------------| | [**rust-embedded**](https://github.com/rust-embedded) | Core embedded Rust infrastructure — `embedded-hal` traits, the Discovery book, `cortex-m` crates | | [**esp-rs**](https://github.com/esp-rs) | Everything ESP32 — `esp-hal`, `esp-radio`, `esp-alloc`, tooling | | [**embassy-rs**](https://github.com/embassy-rs) | Async embedded framework — `Embassy` executor, HAL integrations | For this workshop, we'll primarily work with **esp-rs** crates, since our hardware is the ESP32-C3. --- ## Where to Find Things | What You Need | Where to Look | |--------------|---------------| | Crate discovery | [crates.io](https://crates.io) — search for driver crates, HALs | | API documentation | [docs.rs](https://docs.rs) — auto-generated docs for every published crate | | ESP32-C3 specific docs | [docs.espressif.com/projects/rust/esp-hal/latest/esp32c3/esp_hal/](https://docs.espressif.com/projects/rust/esp-hal/latest/esp32c3/esp_hal/) | | Examples & source code | GitHub repos — `esp-rs/esp-hal`, driver crate repos | | Curated resources | [awesome-esp-rust](https://github.com/esp-rs/awesome-esp-rust) | --- ## The Role of `esp-hal` **esp-hal** is the Hardware Abstraction Layer for ESP32 chips. It provides: - Safe Rust APIs for every peripheral (GPIO, I2C, SPI, UART, timers, etc.) - Implementations of `embedded-hal` traits (more on this next) - Interrupt handling - DMA support Think of `esp-hal` as the bridge between your Rust code and the raw hardware registers on the ESP32-C3. Current version: **esp-hal 1.0.0** (released October 2025).
The Embedded Rustacean · Rust Week 2026