Embedded Rust (no_std) on Espressif
FreeTraining for Rust using no_std (bare metal) approach on ESP32-C3, officially supported by Espressif.
FreeFree tier
About Embedded Rust (no_std) on Espressif
This official Espressif training book provides a getting-started guide for using Rust with Espressif SoCs and modules using the no_std (bare metal) approach. It covers the basics of embedded development, such as reacting to button presses and lighting LEDs, using the ESP32-C3-DevKit-RUST-1 board (though other supported SoCs can be used with minor changes). The training assumes basic Rust knowledge (Chapters 1-6 of The Rust Book) and references the esp-hal examples for specific peripheral usage. The community supports learners via a Matrix channel. Note: The training is currently being rewritten (out of date).
Key Features
Getting-started guide for Rust on Espressif SoCs with no_std (bare metal) approach
Covers basics of embedded development: button press and LED interaction
Uses ESP32-C3-DevKit-RUST-1 board as primary example (other SoCs supported)
References esp-hal examples for peripheral usage
Community support via Matrix
Recommended prerequisite: Basic Rust knowledge (Chapters 1-6 of The Rust Book)
Pros & Cons
Pros
- Officially supported by Espressif Systems
- Free and open source training material
- Active community on Matrix for questions and issue resolution
- Links to broader Espressif Rust ecosystem (esp-hal, The Rust on ESP Book)
Cons
- Training is currently out of date and being rewritten
- Examples are primarily tailored for ESP32-C3; other SoCs may need code changes
- Requires basic Rust knowledge to follow effectively
Best For
Learning embedded Rust development on Espressif hardwareBuilding bare metal applications without the Rust standard libraryGetting started with ESP32-C3 and Rust for IoT projects
FAQ
Is this training free?
Yes, the training material is free and open source.
What board is used in the examples?
The examples typically use the ESP32-C3-DevKit-RUST-1 board, but other SoCs supported by no_std can be used with minor configuration changes.
What prior knowledge is needed?
Basic Rust knowledge equivalent to Chapters 1-6 of The Rust Book, including ownership, is recommended.