{"id":14963395,"url":"https://github.com/gerardcl/esp32-c3-rust-std","last_synced_at":"2026-01-19T09:34:40.380Z","repository":{"id":148370403,"uuid":"612990715","full_name":"gerardcl/esp32-c3-rust-std","owner":"gerardcl","description":"Rust std library on ESP32 C3 RISC-V boards playground","archived":false,"fork":false,"pushed_at":"2023-03-18T19:53:35.000Z","size":10,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-08T09:48:42.728Z","etag":null,"topics":["embedded","esp32","esp32c3","risc-v","rust","std"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gerardcl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-03-12T15:27:37.000Z","updated_at":"2023-09-02T20:29:58.000Z","dependencies_parsed_at":"2023-05-19T21:45:12.058Z","dependency_job_id":null,"html_url":"https://github.com/gerardcl/esp32-c3-rust-std","commit_stats":{"total_commits":5,"total_committers":1,"mean_commits":5.0,"dds":0.0,"last_synced_commit":"914658b26487dd505317c5b117b4eaa4af48dea8"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gerardcl/esp32-c3-rust-std","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardcl%2Fesp32-c3-rust-std","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardcl%2Fesp32-c3-rust-std/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardcl%2Fesp32-c3-rust-std/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardcl%2Fesp32-c3-rust-std/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gerardcl","download_url":"https://codeload.github.com/gerardcl/esp32-c3-rust-std/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gerardcl%2Fesp32-c3-rust-std/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28565001,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T08:53:44.001Z","status":"ssl_error","status_checked_at":"2026-01-19T08:52:40.245Z","response_time":67,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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"}},"keywords":["embedded","esp32","esp32c3","risc-v","rust","std"],"created_at":"2024-09-24T13:31:26.762Z","updated_at":"2026-01-19T09:34:40.365Z","avatar_url":"https://github.com/gerardcl.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rust std library on ESP32 C3 RISC-V boards playground\n\nIn this project I am playing with ESP32 C3 RISC-V based board, with the `std` library (another option would be using the `no-std` - bare-metal -, but I discarded it because I want to be as close to higher level application development as possible).\n\n## Environment Setup\n\nI started my journey from the official [Rust on ESP Book](https://esp-rs.github.io/book/introduction.html).\n\nIn case you want to go fast without going through the book, try following the next howto steps, which will let you run this project in your ESP32 C3 RISC-V based board.\n\n- Rust installation via `rustup`, and required dependencies via `espup`:\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\ncargo install ldproxy\nrustup toolchain install nightly --component rust-src  # since we are targetting RISC-V based boards\ncargo install espup\nespup install  # IMPORTANT to add to your shell profile the following line: . $HOME/export-esp.sh\ncargo install cargo-espflash\ncargo install espflash\ncargo install cargo-espmonitor\ncargo install espmonitor\n```\n\n**NOTE**: as already mentioned, and if any issue, please follow the book mentioned above 🫰\n\n- Check that the board is connected and ready to be used. In the new generated repo path, run:\n\n```bash\ncargo espflash board-info\n```\n\n- Setup the IDE extensions:\n\nSince I am using VSCode I installed the following extensions for [Rust](https://esp-rs.github.io/book/tooling/text-editors-and-ides.html#visual-studio-code).\n\nAnd, the `CodeLLDB` extension is recommended.\n\n## Develop and Release\n\nOnce the base setup is done, make sure to create the `cfg.toml` from the `cfg.toml.template` template file, accordingly. Then:\n\n### Run in debug mode\n\nWith or without IDE, one can start developing by building and flashing in debug mode to the selected serial-connected device, and monitor the output on that serial:\n\n```bash\ncargo run\n```\n\nHere, thanks to using Rust, errors are pretty clear and helpful, if any. Have fun! 🦀\n\n### Run release\n\nOnce the development is ready, one can release an optimized binary and flash it with the following command:\n\n```bash\ncargo espflash --release\n```\n\nIf requiring to also check the serial monitor, run instead:\n\n```bash\ncargo espflash --release --monitor\n```\n\n## Final notes\n\nIn any case, I recommend reading the book, since this list of steps above is merely meant as a documentation recap for this repo's context.\n\nAfter setting up the development environment, I did also generate this base repo via `cargo generate` with the official `esp-idf-template` template:\n\n```bash\ncargo install cargo-generate\ncargo generate --git https://github.com/esp-rs/esp-idf-template cargo\n```\n\n**NOTE**: you will need to give it a `project` name, select the MCU `esp32c3`, set `true` for STD support, set `false` for DevContainers, and select `ESP-IDF` native build version (I did select v4.4, which was the current stable back then).\n\nAnd, once I got the base setup, then I continued over [Writing std applications](https://esp-rs.github.io/book/writing-your-own-application/std-applications/index.html).\n\nI also based my learnings on the following repositories:\n\n- [rust-esp32-std-demo](https://github.com/ivmarkov/rust-esp32-std-demo)\n- [espressif-trainings](https://github.com/esp-rs/espressif-trainings)\n\nThis setup is great because you keep using the same main tools Rust provides, and all cross-compiled! 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerardcl%2Fesp32-c3-rust-std","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgerardcl%2Fesp32-c3-rust-std","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgerardcl%2Fesp32-c3-rust-std/lists"}