Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Preface

Welcome to our guide to embedded Rust development on Espressif products. This book is designed to help you get started and become comfortable using our tools and ecosystem. Along the way, we’ll introduce the structure of our software stack, and walk through basic workflows using project generation and tooling. By the end, you’ll be ready to explore more advanced material through our reference documentation and external training resources.

Who This Book Is For

This book is intended for Rust developers who are interested in embedded development, even if they don’t have prior experience with embedded systems. While some familiarity with low-level programming concepts can be helpful, we aim to introduce key ideas as they come up. If you would like to expand your baseline knowledge, consider studying the additional Resources.

Stability and Availability

While we strive for stability, users should expect periodic modifications as we improve the API, enhance performance, and introduce new features. Modules that are already stabilized will not be subject to breaking changes, in accordance with semantic versioning - SemVer. However, unstable features—such as parts of the esp-hal and certain drivers are actively being developed and are not covered by SemVer guarantees. This means that using these unstable components may break your project with a simple cargo update, much like working with Rust's nightly compiler. This kind of instability is common across the broader Rust embedded ecosystem, which is still rapidly evolving. Expect frequent changes and track dependencies closely. For all major crates, we provide migration guides between releases to help you stay up to date.

Additional Resources

If you're unfamiliar with certain concepts covered in this book or would like to deepen your understanding, the following resources may be helpful:

ResourceDescription
The Rust Programming LanguageLearn Rust fundamentals before diving into embedded development.
The Embedded Rust BookA collection of resources from Rust's Embedded Working Group.
Embedded Rust (no_std) on EspressifGuide for working in no_std environments with Espressif SoCs.
Awesome ESP RustA list of resources for development in the Rust programming language for Espressif products
Awesome Embedded RustA list of resources related to embedded and low-level programming in the Rust programming language, including a selection of useful crates.

Contributing to This Book

The work on this book is coordinated in this repository.

If you encounter difficulties following the instructions or find unclear sections, please report them in the issue tracker. Contributions in the form of pull requests for typo fixes or clarity improvements are always welcome!

Support and Community

If you need help, have questions, or would like to discuss topics related to esp-rs, you can reach out through the following channels:

We hope this book provides you with the knowledge and confidence to build robust, efficient, and safe embedded applications using Rust on Espressif products. Let's get started!