Embedded Rust documentation

Welcome to an overview of the documentation provided by the embedded Working Group. All of these projects are managed by the resources team.

Many of these resources take the form of "books"; we collectively call these "The embedded Rust Bookshelf". Some are large, some are small.

All these resources assume that you have done some Rust programming before.

Learn about embedded development

If you are familiar with Rust but not with embedded development, this is the spot for you! All of these resources assume that you have done some Rust programming on the desktop, but that you have not done any embedded development before.

The Discovery book

The Discovery book will teach you about microcontrollers, peripherals, sensors and bare metal programming through a series of small, fun projects that you'll develop in Rust.

Learn embedded Rust

If you are familiar with embedded development and familiar with Rust but have not used Rust for embedded development then these resources are for you. All these resources assume that you have done embedded development before, but not in any specific language.

The embedded Rust book

Also known as "the book" by the embedded Rust community. The embedded Rust book will get you up to speed with embedded Rust development and then teach you how to effectively use the language (AKA patterns) to build more correct embedded software.

Frequently Asked Questions

You can find our list of FAQ here.

Write embedded Rust

Once you have learned the basics these resources will make writing embedded programs easier.

Master embedded Rust

Once you're quite familiar with embedded Rust development, you may find these advanced resources useful.

The embedonomicon

For those that want to dive into the implementation of the foundational crates of the embedded ecosystem. The embedonomicon will guide you through the abyss of linker scripts, symbols and ABIs. You'll learn about linker script and the language features that let you control the ABI of crates by creating a no_std program for the ARM Cortex-M architecture from scratch.