RepoMicrosoftMicrosoftpublished Mar 13, 2026seen 15h

microsoft/RustTraining

Rust

Open original ↗

Captured source

source ↗
published Mar 13, 2026seen 15hcaptured 15hhttp 200method plain

microsoft/RustTraining

Description: Beginner, advanced, expert level Rust training material

Language: Rust

License: MIT

Stars: 14552

Forks: 1134

Open issues: 0

Created: 2026-03-13T04:25:17Z

Pushed: 2026-06-11T06:19:15Z

Default branch: main

Fork: no

Archived: no

README:

License This project is dual-licensed under the [MIT License](LICENSE) and [Creative Commons Attribution 4.0 International (CC-BY-4.0)](LICENSE-DOCS).

Trademarks This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

Rust Training Books

Seven training courses covering Rust from different programming backgrounds, plus deep-dives on async, advanced patterns, and engineering practices.

This material combines original content with ideas and examples inspired by some of the best resources in the Rust ecosystem. The goal is to present an in-depth, technically accurate curriculum that weaves together knowledge scattered across books, blogs, conference talks, and video series into a cohesive, pedagogically structured experience.

> Disclaimer: These books are training material, not an authoritative reference. While we strive for accuracy, always verify critical details against the official Rust documentation and the Rust Reference.

Inspirations & Acknowledgments

📖 Start Reading

Pick the book that matches your background. Books are grouped by complexity so you can chart a learning path:

| Level | Description | |-------|-------------| | 🟢 Bridge | Learn Rust coming from another language — start here | | 🔵 Deep Dive | Focused exploration of a major Rust subsystem | | 🟡 Advanced | Patterns and techniques for experienced Rustaceans | | 🟣 Expert | Cutting-edge type-level and correctness techniques | | 🟤 Practices | Engineering, tooling, and production readiness |

| Book | Level | Who it's for | |------|-------|-------------| | **Rust for C/C++ Programmers** | 🟢 Bridge | Move semantics, RAII, FFI, embedded, no_std | | **Rust for C# Programmers** | 🟢 Bridge | Swift / C# / Java → ownership & type system | | **Rust for Python Programmers** | 🟢 Bridge | Dynamic → static typing, GIL-free concurrency | | **Async Rust** | 🔵 Deep Dive | Tokio, streams, cancellation safety | | **Rust Patterns** | 🟡 Advanced | Pin, allocators, lock-free structures, unsafe | | **Type-Driven Correctness** | 🟣 Expert | Type-state, phantom types, capability tokens | | **Rust Engineering Practices** | 🟤 Practices | Build scripts, cross-compilation, CI/CD, Miri |

Each book has 15–16 chapters with Mermaid diagrams, editable Rust playgrounds, exercises, and full-text search.

> Tip: Browse the rendered books with sidebar navigation and search at the GitHub Pages site. > > Local preview: For offline reading or while contributing (install Rust first): > `` > git clone https://github.com/microsoft/RustTraining.git > cd RustTraining > cargo install mdbook mdbook-mermaid > cargo xtask serve # http://localhost:3000 >

---

🔧 For Maintainers

Building, serving, and editing the books locally

Prerequisites

Install Rust via **rustup** if you haven't already, then:

cargo install mdbook@0.4.52 mdbook-mermaid@0.14.0

Clone the repo

git clone https://github.com/microsoft/RustTraining.git
cd RustTraining

Build & serve

cargo xtask build # Build all books into site/ (local preview)
cargo xtask serve # Build and serve at http://localhost:3000
cargo xtask deploy # Build all books into docs/ (for GitHub Pages)
cargo xtask clean # Remove site/ and docs/

To build or serve a single book:

cd c-cpp-book && mdbook serve --open # http://localhost:3000

Deployment

The site auto-deploys to GitHub Pages on push to main via .github/workflows/pages.yml. No manual steps needed.