Espforge
A scaffolding++ tool for esp32 no_std rust projects.
Features
- Uses esphome-like YAML configuration
- Pre-built components and devices that sit on top of esphal https://github.com/esp-rs/esp-hal
- Wire "app" code in rust.
- Supports both bare-metal blocking execution and async execution using the embassy framework.
- Wokwi integration and working examples
- Project samples
Essence of espforge - blink example
Given this yaml file
espforge:
name: blink
platform: esp32c3
esp32:
gpio:
gpio2:
components:
red_led:
using: LED
with:
gpio: $gpio2
active_low: false
and this app.rs
use crate::;
It will generate a esp32 esphal-based rust project that you can then
If you want to see the examples in this repo in action, click here
Prerequisites
Rust: Install Rust
ESP machinery(can always use cargo install if needed):
cargo install cargo-binstall
cargo binstall espup
espup install
cargo binstall esp-generate
Installation
cargo binstall espforge
Alternatively
cargo install espforge
Verify install
espforge doctor
Geting started

Run
espforge examples
Pick a category eg 01.Basics, then pick an example, eg. blink
This will create a generated folder with artifacts that include a blink.yaml
In that folder, run
espforge compile blink.yaml
This creates a rust project in-place alongside the artifacts created in the previous step.
Finally:
cargo build
Updating yaml file
When the yaml file is updated, simply run:
espforge compile blink.yaml
cargo build
Building from source
cargo build -p espforge
Wokwi
If using VSCode, enable wokwi extension, then double-click on diagram.json
Projects
in the espforge_projects folder
- using mousefood/ratatui with ili9341 to create a menu
License
MIT