{"id":44963,"url":"https://github.com/esp-rs/awesome-esp-rust","name":"awesome-esp-rust","description":"Curated list of resources for ESP32 development in the Rust programming language","projects_count":91,"last_synced_at":"2026-08-01T16:00:24.720Z","repository":{"id":37725574,"uuid":"496917225","full_name":"esp-rs/awesome-esp-rust","owner":"esp-rs","description":"Curated list of resources for ESP32 development in the Rust programming language","archived":false,"fork":false,"pushed_at":"2026-07-06T07:39:45.000Z","size":76,"stargazers_count":1605,"open_issues_count":2,"forks_count":67,"subscribers_count":32,"default_branch":"main","last_synced_at":"2026-07-13T13:05:13.057Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/esp-rs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-05-27T08:23:01.000Z","updated_at":"2026-07-13T03:59:34.000Z","dependencies_parsed_at":"2025-11-18T22:00:26.594Z","dependency_job_id":"af2941e3-029a-4289-9e57-4f40acdd1195","html_url":"https://github.com/esp-rs/awesome-esp-rust","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/esp-rs/awesome-esp-rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esp-rs%2Fawesome-esp-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esp-rs%2Fawesome-esp-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esp-rs%2Fawesome-esp-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esp-rs%2Fawesome-esp-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esp-rs","download_url":"https://codeload.github.com/esp-rs/awesome-esp-rust/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esp-rs%2Fawesome-esp-rust/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36161704,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-08-01T02:00:05.789Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-01-13T21:19:02.109Z","updated_at":"2026-08-01T16:00:24.721Z","primary_language":"Rust","list_of_lists":false,"displayable":true,"categories":["Community","Books, Blogs, and Training Materials","Video Courses and Talks","Tools","Projects","Templates","Open Hardware","Libraries built on top of `esp-hal`"],"sub_categories":["`no_std`","`std`"],"readme":"\u003c!-- omit in toc --\u003e\n# Awesome ESP Rust\n\n[![Awesome](https://awesome.re/badge-flat2.svg)](https://awesome.re)\n\n\u003e A curated list of resouces for development in the Rust programming language for ESP32, ESP32-C2/C3/C6, ESP32-H2, and ESP32-S2/S3.\n\n\u003c!-- omit in toc --\u003e\n## Table of Contents\n\n- [Community](#community)\n- [Books, Blogs, and Training Materials](#books-blogs-and-training-materials)\n- [Video Courses and Talks](#video-courses-and-talks)\n- [Tools](#tools)\n- [Templates](#templates)\n- [Libraries built on top of `esp-hal`](#libraries-built-on-top-of-esp-hal)\n- [Open Hardware](#open-hardware)\n- [Projects](#projects)\n  - [`std`](#std)\n  - [`no_std`](#no_std)\n- [License](#license)\n\n## Community\n\nYou can usually find community members (including some employees of Espressif) in the [`#esp-rs:matrix.org` Matrix room](https://matrix.to/#/#esp-rs:matrix.org).\n\n## Books, Blogs, and Training Materials\n\n- [EN] [The Rust on ESP Book](https://docs.espressif.com/projects/rust/book/preface.html) - The goal of this book is to provide a comprehensive guide on using the Rust programming language with Espressif SoCs and modules.\n- [EN] [Embedded Rust (no_std) on Espressif](https://docs.espressif.com/projects/rust/no_std-training/) - Training for Rust using `no_std` approach development on ESP32-C3.\n- [EN] [Embedded Rust (std) on Espressif](https://esp-rs.github.io/std-training/) - Training for Rust using `std` approach development on ESP32-C3 by [Ferrous Systems](https://ferrous-systems.com/training/).\n- [EN] [Espressif Developer Portal - tag: Rust](https://developer.espressif.com/tags/rust/) - Articles about Rust for ESP32.\n- [EN] [Scott Mabin - Rust on Espressif chips](https://mabez.dev/blog/posts/) - Quarterly updates about Rust on Espressif chips.\n- [EN] Making a Dino Light with the ESP32 and WS2812\n  - [Making a Dino Light with the ESP32 and WS2812](https://nereux.blog/posts/esp32-ws2812-dino-light/)\n  - [Making a Dino Light with the ESP32 and WS2812 Pt. 2](https://nereux.blog/posts/esp32-ws2812-dino-light-2/)\n- [EN] [ESP32 with Embedded Rust at the HAL](https://blog.theembeddedrustacean.com/series/esp32c3-embedded-rust-hal) - Blog series about learning Rust at the HAL level with the ESP32-C3.\n- [EN] [A getting started guide to ESP32 no-std Rust development](https://nereux.blog/posts/getting-started-esp32-nostd/)\n- [EN] [impl Rust on ESP32](https://esp32.implrust.com/) - The book explores and explains various exciting projects using an ESP32.\n- [JP] 倒立振子ロボットを現代制御で動かしたい (I want to run an inverted pendulum robot with modern control)\n  - [(1) モデル化](https://zenn.dev/tana_ash/articles/balance-robot-modern-1) (Modelling)\n  - [(2) 直立制御](https://zenn.dev/tana_ash/articles/balance-robot-modern-2) (Upright Control)\n  - [(3) 遠隔操縦](https://zenn.dev/tana_ash/articles/balance-robot-modern-3) (Remote Control)\n- [JP] ESP32 で std な Rust 開発入門\n  - [その 1 環境構築](https://lang-ship.com/blog/work/esp32-std-rust-1/) (Part 1: Building the environment)\n  - [その 2 L チカ](https://lang-ship.com/blog/work/esp32-std-rust-2/) (Part 2: Blink an LED)\n- [EN] [Programming ESP32 with Rust: OTA firmware update](https://quan.hoabinh.vn/post/2024/3/programming-esp32-with-rust-ota-firmware-update)\n- [VI] [Lập trình ESP32 với Rust: cập nhật firmware OTA](https://quan.hoabinh.vn/post/2024/03/lap-trinh-esp32-voi-rust-cap-nhat-firmware-ota)\n- [EN] [Securely sending DHT22 sensor data from an ESP32 board to PostgreSQL](https://c410-f3r.github.io/thoughts/securely-sending-dht22-sensor-data-from-an-esp32-board-to-postgresql/)\n- [EN] [Freenove ESP32 Tutorials in Rust](https://makuo12.github.io/Freenove-esp32-rust/) - Transforms traditional C and MicroPython-based Freenove lessons into idiomatic Rust code.\n## Video Courses and Talks\n\n- [EN] [Rust on ESP32-C3](https://www.youtube.com/playlist?list=PLkch9g9DEE0Lkm1LqcD7pZNDmXEczOo-a)\n- [EN] [Andrei Litvin / @embedded-rust](https://www.youtube.com/@embedded-rust/videos)\n- [EN] [Rust embedded at Espressif @ Copenhagen Rust Community](https://www.youtube.com/watch?v=gdmUhzJfgzk)\n- [EN] [Embedded Rust on ESP32 - Juraj Michálek - Rust Linz November 2022](https://www.youtube.com/watch?v=0PPPdqoDBQs)\n- [EN] [Rust on Espressif chips - Scott Mabin - DevCon22](https://www.youtube.com/watch?v=qeEmJ_-6fPg)\n- [EN] [Rust Bare-metal and Async - Scott Mabin, Juraj Sadel - DevCon23](https://www.youtube.com/watch?v=QPp4WEjx5jU)\n- [EN] [Rust on ESP32 - Video series live coding esp32 examples in Rust](https://www.youtube.com/playlist?list=PL0U7YUX2VnBFbwTi96wUB1nZzPVN3HzgS)\n## Tools\n\n- [espup](https://github.com/esp-rs/espup) - Tool for installing and maintaining the required toolchains for developing applications in Rust for Espressif SoC's.\n- [espflash](https://github.com/esp-rs/espflash) - Serial flasher utility for Espressif SoCs and modules based on [esptool](https://github.com/espressif/esptool).\n- [esp-web-flash-server](https://github.com/bjoernQ/esp-web-flash-server) - WebSocket server for flashing from Visual Studio Code Remote Containers using a web browser.\n- [wokwi-server](https://github.com/MabezDev/wokwi-server) - WebSocket server for running simulations in [Wokwi](https://wokwi.com/) from Visual Studio Code Remote Containers using a web browser.\n- [Wokwi Simulator](https://wokwi.com/rust) - Web browser simulator that supports Rust language on ESP32 chips.\n\n## Templates\n\n- [esp-idf-template](https://github.com/esp-rs/esp-idf-template) - A [cargo-generate](https://cargo-generate.github.io/cargo-generate/) template for projects using the Rust `std` library (via [ESP-IDF](https://github.com/espressif/esp-idf)).\n- [esp-generate](https://github.com/esp-rs/esp-generate) - Template generation tool to create `no_std` applications targeting Espressif's chips.\n\n## Libraries built on top of `esp-hal`\n\nReusable libraries and library collections built on top of `esp-hal`.\n\n* [esp-hal-community](https://github.com/esp-rs/esp-hal-community) - A collection of community-maintained crates for use alongside `esp-hal`.\n* [device-envoy](https://github.com/CarlKCarlK/device-envoy) - Embassy-based device abstractions for ESP32-C6 and ESP32-S3, including Wi-Fi provisioning, LED-panel graphics, and audio playback.\n\n## Open Hardware\n\n- [esp-rust-board](https://github.com/esp-rs/esp-rust-board) - A development board based on the ESP32-C3 and designed in [KiCad EDA](https://www.kicad.org/) which is compatible with the [Adafruit Feather](https://learn.adafruit.com/adafruit-feather/feather-specification) specification.\n\n## Projects\n\n### `std`\n\n- [anemometer](https://github.com/taunusflieger/anemometer) - Rust based anemometer incl. OTA and GPS based calibration process.\n- [bluedroid](https://github.com/pulse-loop/bluedroid) - Safe wrapper for the Bluedroid Bluetooth stack.\n- [CO2-Sensor-Zigbee-Rust](https://github.com/ManfredFr/CO2-Sensor-Zigbee-Rust) - Zigbee CO2 sensor (ESP32-H2 + Senseair S8) integrated into Home Assistant via Zigbee2MQTT, driving Espressif's Zigbee SDK (esp-zigbee-lib) through `esp-idf-sys` FFI bindings.\n- [Dark Sky Meter](https://gitlab.com/scrobotics/optical-makerspace/dark-sky-meter-fw) - Open Hardware low-cost night sky sensor that measures light levels as well as several ambient parameters.\n- [dephy-esp32c3-rust-boilerplate](https://github.com/dephy-io/dephy-esp32c3-rust-boilerplate) - A `std` ESP32-C3 application boilerplate on production with `tokio` for `async` support and examples for IO, Wi-Fi provisioning, eFuse, GPIO, I2C, HTTP, BLE advertising, etc.\n- [esp-clock](https://github.com/playfulFence/esp-clock) - Clock with environment stats. [Wokwi project](https://wokwi.com/projects/357451677483992065)\n- [esp32-idf-nmea-example](https://github.com/georgik/esp32-idf-nmea-example) - Example of integration ESP-IDF application with Rust code as component.\n- [esp32-s3-rust-axum-example](https://github.com/aedm/esp32-s3-rust-axum-example) - Example of running Tokio + Axum web server on the ESP32-S3.\n- [esp32c3-rust-std-temperature-logger](https://github.com/bjoernQ/esp32c3-rust-std-temperature-logger) - MQTT temperature logger running on ESP32-C3.\n- [esp32cam-rs](https://github.com/Kezii/esp32cam_rs) - Examples of Rust on ESP32-CAM, including a fully-featured Telegram bot capable of taking pictures.\n- [gateway-rs](https://github.com/OpenIoTHub/gateway-rs) - A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet(like [frp](https://github.com/fatedier/frp) but running on ESP32).\n- [mch2022-rust-app](https://github.com/p2mate/mch2022-rust-app) - Example that shows a nice rust screensaver in MCH2022 badge.\n- [M5Stack-Cardputer](https://github.com/Kezii/Rust-M5Stack-Cardputer) - Rust support for the Cardputer, including an interactive 3d graphics demo\n- [OFMon](https://github.com/arashsm79/OFMon) - Offline-first smart energy monitor using littlefs, Rust, ESP32, and Thingsboard. [See details](https://moslehian.com/posts/2022/3-ofmon/).\n- [OxidESPark](https://gitlab.com/cyril-marpaud/oxide-spark) - Rust library for the Rust ESP Board that uses the ESP-IDF framework and provides tools to easily build applications that interact with the physical world.\n- [rust-esp32-std-demo](https://github.com/ivmarkov/rust-esp32-std-demo) - A demo `std` binary crate for the ESP32[XX] and [ESP-IDF](https://github.com/espressif/esp-idf), which connects to WiFi, Ethernet, drives a small HTTP server and draws on a LED screen.\n- [rust4mch](https://github.com/jhaand/rust4mch) - Example to run Rust code on the MCH2022 badge.\n- [rustzx-esp32](https://github.com/georgik/rustzx-esp32) - ZX Spectrum emulator based on RustZX project.\n- [self-balancing robot](https://github.com/tana/atom-motion-balance) - Self-balancing robot using Atom Matrix and Atom Motion. [See details](https://zenn-dev.translate.goog/tana_ash/articles/5a458538cd9204?_x_tr_sl=auto\u0026_x_tr_tl=en\u0026_x_tr_hl=en-US\u0026_x_tr_pto=wapp).\n- [twatch-idf-rs](https://github.com/pyaillet/twatch-idf-rs) - Experimental firmware for the Lilygo T-Watch\n- [wrover-experimental](https://github.com/JurajSadel/wrover-experimental) - Display line directions and departure times of public transport vehicles in Brno, CZ.\n- [esp-clock-rs](https://github.com/zhangzqs/esp-clock-rs) - A weather clock project designed based on the Slint UI framework. This is a attempt for the low-coupling cross-platform project based on the message communication mechanism, which supports running on ESP32-C3, WebBrowser(WASM), Desktop, and Android.\n- [esp-wifi-provisioning](https://github.com/Dwarf1er/esp-wifi-provisioning) - A crate that provides WiFi provisioning with a captive portal using a SoftAP.\n\n### `no_std`\n\n- [esp32c3-devkit-rust - Embassy, BLE, Sensors example](https://github.com/jamessizeland/esp32c3-devkit-demo) - Medium complexity project demo interfacing with the peripherals available on this board, which include RGB LED, i2c IMU, Temperature \u0026 Humidity and BLE using TrouBLE and Embassy.\n- [esp32 wifi tank](https://jamesmcm.github.io/blog/esp32-wifi-tank/) - Building a Wifi-controlled car with Rust and ESP32\n- [Beginner Rust ESP32 development - Snake](https://jamesmcm.github.io/blog/beginner-rust-esp32-lcdsnake/) - Snake game to run on an ESP32 development board with a connected OLED display and controlled with a joystick.\n- [esp32-rust-nostd-temperature-logger](https://github.com/bjoernQ/esp32-rust-nostd-temperature-logger) - MQTT temperature logger running on ESP32.\n- [esp32-conways-game-of-life-rs](https://github.com/georgik/esp32-conways-game-of-life-rs) - Conway's Game of Life in Bare metal Rust for different ESP32 based boards.\n- [esp32-spooky-maze-game](https://github.com/georgik/esp32-spooky-maze-game) - Bare metal Rust implementation of game for different ESP32 based boards using Bevy ECS no_std.\n- [esp32-rex](https://github.com/ImplFerris/esp32-rex) - Dinosaur Game written in Rust for the ESP32 with an OLED display, using the Embassy framework.\n- [ps2keyboard-esp32c3](https://github.com/bjoernQ/ps2keyboard-esp32c3) - PS/2 keyboard implementation for ESP32-C3.\n- [esp32c3-ota-experiment](https://github.com/bjoernQ/esp32c3-ota-experiment) - ESP32-C3 Bare Metal OTA Experiment.\n- [SlimeVR-Rust/firmware](https://github.com/SlimeVR/SlimeVR-Rust/tree/main/firmware) - Async \u0026 no_std rust firmware for SlimeVR Full Body Tracking.\n- [esp32s3-box-examples](https://github.com/sambenko/esp32s3-box-examples) - Various graphic examples for ESP32-S3 Box.\n- [nostd-wifi-lamp](https://github.com/Nereuxofficial/nostd-wifi-lamp) - A Wi-Fi Lamp built with an ESP32 and Neopixel Lights controllable via Wi-Fi\n- [plantineers-edge](https://github.com/plantineers/edge) - Firmware for edge devices for an Open Source Plant Monitoring solution using esp-now\n- [esp32c3-no-std-async-mqtt-demo](https://github.com/JurajSadel/esp32c3-no-std-async-mqtt-demo) - ESP32-C3 application that measures temperature (using BMP180) and sends the results with MQTT via WiFi - everything is done asynchronously. Also available for [ESP32](https://github.com/JurajSadel/esp32-no-std-async-mqtt-demo) and [ESP32-S3](https://github.com/JurajSadel/esp32s3-no-std-async-mqtt-demo)\n- [esp32-rust-lilygo-t5-epaper](https://github.com/georgik/esp32-rust-lilygo-t5-epaper) - ESP32 LilyGo T5 ePaper with WiFi\n- [esp32-buddy-rs](https://github.com/georgik/esp32-buddy-rs) - Bare metal Rust examples for ESP-Buddy board\n- [bradipograph](https://github.com/jneem/bradipograph/) - A sloth-like drawing robot.\n- [esp-examples](https://github.com/danclive/esp-examples) - Some examples of esp-hal.\n- [touch-n-drink](https://github.com/zargony/touch-n-drink) - Cashless payment device for cold drinks at a German aeroclub\n- [tetris](https://github.com/Hahihula/no_std_tetris) - simple tetris implementation on esp32-c3 and neopixels led strip\n- [esp-hub75](https://github.com/liebman/esp-hub75) - driver for Hub75 Matrix RGB LED Displays supporting ESP32, ESP32-S3, and ESP32-C6\n- [esp32-mipidsi-clock](https://github.com/mgrenonville/esp32-mipidsi-clock) - A Round LCD clock with slint UI + embassy, NTP time sync via WIFI, and SVG rendering on ESP32-C6\n- [esp-rust-spi-lcd-demo](https://github.com/KaidRommel/esp-rust-spi-lcd-demo) - A demonstration project for the ESP32-S3, showcasing a bouncing text animation on an SPI LCD.\n- [Embedded Rust Programs](https://github.com/Vaishnav-Sabari-Girish/Embedded-Rust) - A curated list of Embedded Rust programs for multiple Microcontrollers including the ESP32 WROOM DA Module. Contains programs like sensor integration, TFT screen integration etc. \n- [radioala-esp](https://github.com/MindsHub/radioala-esp) - a webradio streamer, based on embassy and esp-hal. It shows how to integrate with an external ppp-modem, have a stable tcp connection, spawn blocking task on second thread and reproduce music throught i2s. It also contain an alternative backend for the integrated-wifi.\n- [c6-touch-lcd-demo](https://github.com/Hahihula/ESP32-C6-Touch-LCD-Rust-Demo) -  demo for the Waveshare ESP32-C6-Touch-LCD-1.47 module showcasing display, touch, button, IMU and internal temperature reading and ferris on about page\n- [DCC-esp32](https://github.com/cc90202/DCC-esp32) - `no_std` ESP32-C6 DCC command station firmware for model railroading, built with `esp-hal`, Embassy, RailCom support, Z21 networking, and runtime WiFi provisioning.\n- [lilygo-epd47-rs](https://github.com/fridolin-koch/lilygo-epd47-rs) - A rust driver for the LilyGo T5 4.7 E-Paper Display, ported from the offical C driver. Intended be used with `esp-hal` and [embedded-graphics](https://docs.rs/embedded-graphics/latest/embedded_graphics/).\n- [esp-rust-board-discovery](https://github.com/melastmohican/esp-rust-board-discovery) - Examples and tutorials for programming the Rust ESP Board (ESP32-C3-DevKit-RUST-1) using embedded Rust with the `esp-hal` hardware abstraction layer.\n- [m5dial-bsp](https://codeberg.org/antoinezen/m5dial-bsp) - BSP for [M5 Stack \"M5 Dial\"](https://docs.m5stack.com/en/core/M5Dial) board.\n- [esp32s3-midi](https://github.com/cjdell/esp32s3-midi) - Simulate USB MIDI using an ESP32-S3. Send notes via GPIO or WiFi via a WebSocket. Includes use of a captive portal to trigger the display of a web app. \n\n## License\n\nThis list is licensed under\n\n- CC0 1.0 Universal License ([LICENSE](LICENSE) or https://creativecommons.org/publicdomain/zero/1.0/legalcode)\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/esp-rs%2Fawesome-esp-rust/projects"}