The Little Book of Rust Books
This book is a treasure-trove of Rust books:
- Official books maintained at rust-lang.org
- Unofficial books maintained elsewhere
- Application books on specific Rust applications
If you know of others, why not submit a pull request?
The titles of books not in mdbook format are italicised. For more books in other formats, see Rust Books.
Official Rust Books
The following books are maintained at rust-lang.org. Many of them are mentioned in Learn Rust.
Introductory:
- Rust by Example - runnable examples illustrating Rust concepts
- The Rust Programming Language - “the book”
Core:
- The Cargo Book - the Rust package manager
- The Edition Guide - guide on introducing changes into the Rust language
- The rustc Book - guide to the compiler for the Rust programming language
- The rustdoc Book - guide to the tool which generates documentation for Rust projects
- The rustup Book - guide to the tool which installs the Rust language from release channels
Advanced:
- Guide to Rustc Development - compiler internals
- Rust Forge - Rust team documentation
- The Rust Reference - primary reference to the Rust language
- The Rust Unstable Book - nightly-only features
- The Rustonomicon - the dark arts of unsafe Rust
Working groups:
- Compiler team working groups - a list of working groups
- Standard library developers Guide
- The Rust Language Design Team - information related to the work of the lang team
- The Types Team - traits implementation improvements
- wg-async - foundations of async I/O
Other:
- Asynchronous Programming in Rust - non-blocking coroutines
- Clippy Documentation - code lints for programmers
- Criterion.rs - statistics-driven micro-benchmarking
- Error Codes Index - list of all error codes emitted from the Rust compiler
- mdBook - authoring, rendering and serving markdown books
- Polonius - experimental borrow checker crate
- Rust API Guidelines - how to design and present APIs
- Rust RFCs - list of Requests For Comments for changes to Rust
- The Chalk Book - Rust’s new trait system implementation
- The
bindgen
User Guide - automatically generates Rust FFI bindings to C and C++ libraries
Unofficial Rust Books
The following books are maintained outside rust-lang.org.
Introductory:
- 100 Exercises to Learn Rust
- A Gentle Introduction To Rust
- A half-hour to learn Rust
- Common Rust Lifetime Misconceptions
- Comprehensive Rust 🦀 - a multi-day course developed by Google to teach Rust to Android engineers
Dyner
- experimental trait (dyn) objects in Rust- Easy Rust - aimed at non-English native speakers
- Effective Rust - Rust guidelines1
- Error Handling in Rust
- Futures Explained in 200 Lines of Rust - from the internet archive
- Java-Rust Generics
- Learn Rust the Dangerous Way
- Learning Rust - a collection of resources by
quinedot
- Learning Rust With Entirely Too Many Linked Lists
- LifetimeKata
- Pointers
- py2rs - from Python into Rust
- r4cppp - quick introduction to Rust for C++ programmers
- rust-cross - everything you need to know about cross compiling Rust programs!
- Rust Anthology 1
- Rust By Practice - Rust practice through challenging examples, exercises and projects
- Rust Cookbook - a collection of example programs
- Rust for C++ Programmers
- Rust for Clojurists
- Rust for Node Developers
- Rust for the Polyglot Programmer
- Rustic Symmetries
- Rust Iterators
- Rust Ownership, the Hard Way
- Rust 101 - Rust programming language learning guide
- The Node Experiment: Exploring Async Basics with Rust - from the internet archive
Application domains:
- Async
- Async programming in Rust with async-std
- Async Raft - the Raft distributed consensus protocol in async Rust
- Learning Async Rust with Entirely Too Many Web Servers
- The Node Experiment - Exploring Async Basics with Rust
- Tokio Tutorial - event-driven, non-blocking I/O
- Comparing parallel Rust and C++
- Command line
- Command Line Applications in Rust
- PNGme: An Intermediate Rust Project - building a command line program to hide secret messages in PNG files
- CXX — Safe Interop Between Rust and C++
- Embedded
- Embedded: The Missing Parts
- Embedded Rust on Espressif - training Material for learning to use Embedded Rust with the Espressif ESP32-C3.
- The Embedded Rust Book
- The Embedonomicon - build a
#![no_std]
application from scratch - The Rust on ESP Book - comprehensive guide on using the Rust programming language with Espressif SoCs and modules.
- Workbook for Embedded Workshops - an embedded Rust workshop
- Foreign Function Interface (FFI)
- Real-Time Interrupt-driven Concurrency
- Triangle From Scratch - draw a triangle using Win32, but no external crates
- Web assembly
- Writing an OS in Rust
- Writing Interpreters in Rust: a Guide
Other:
- Macros
- Advanced Macros
- MacroKata - a series of worked exercises to learn macros
- The Little Book of Rust Macros
- Rust Latam: procedural macros workshop
- High Assurance Rust - developing secure and robust software
- Rust Design Patterns
- Rust Fuzz Book - fuzz testing
- Rust Performance
- Salsa - framework for on-demand, incrementalized computation
- Secure Rust Guidelines
- The Little Book of Rust Books
- The Rust Rand Book - Rust’s random number library
- Rust Tutorials
1
Some concepts are incomplete, as of March 2022.
Rust Application Books
Applications of Rust:
- An Introduction to Chip-8 Emulation using the Rust Programming Language - PDF book
- A thoughtful introduction to the pest parser - a library for writing plain-text parsers
- Build a Lua Interpreter in Rust
- Book of crosvm - a hosted (a.k.a. type-2) virtual machine monitor
- Create Your Own Programming Language with Rust
delta
- syntax-highlighting pager for git, diff, and grep output- Embedded
- Anachro - a network protocol and a PC architecture for microcontrollers
- Discovery - use an F3 Discovery circuit board and Rust
- The Rust on ESP Book
- Game development
- Amethyst Game Engine
- BEVY The Book - data-driven game engine
- DMG-01: How to Emulate a Game Boy
- Emergent AI - smart agents and events
- Fyrox Cheat Book - a general purpose game engine
- Roguelike Tutorial - In Rust - Roguelike game development
- Rust sokoban - puzzle video game
- The Specs Book - an introduction to Entity–component–system (ECS) and the Specs API
- Writing NES Emulator in Rust - NES is the Nintendo Entertainment System gaming platform
- GPU development
- GraphQL
- Async-graphql Book - GraphQL server-side library
- Cynic - A GraphQL Client For Rust
- Juniper - GraphQL Server for Rust
- GUI development
- Druid
- GUI development with Relm4
- GUI development with Rust and GTK 4
- SixtyFPS Memory Game Tutorial (Rust) - tutorial using the SixtyFPS GUI toolkit
- intermezzOS OS
- nalgebra - a linear algebra library
- OpenPGP Card
- Plotly.rs
- PNGme: An Intermediate Rust Project
- Prusti user guide - a Rust verifier
- Rama Proxy - modular services framework
- Scaphandre - a monitoring agent dedicated to energy consumption
- SeaORM - an async and dynamic ORM
- Serde - serialize and deserialize Rust data structures
- Stakker actor runtime guide - a low-level single-thread actor runtime for Rust
- Tealdeer User Manual - implementation of tldr (help like
man
, but more approachable). - The DNS Protocol
- The Nom Guide (Nominomicon) - a parser combinator library
- The Redox Operating System
- Thesus OS
- The Zebra Book