This repository is a practical, chaptered guide to modern Rust. It is designed to help you move from the language basics to advanced engineering topics without depending on external crates, hidden setup, or scattered notes.
No single repository can literally cover every library and domain in the Rust ecosystem, but this workbook covers the full language surface area you need to become productive and advanced in Rust: syntax, ownership, borrowing, lifetimes, data modeling, traits, modules, Cargo, testing, async, concurrency, macros, unsafe code, FFI, performance, and production workflows.
guide/00-roadmap.md: the overall learning path.guide/01-development-guide.md: day-to-day Rust engineering workflow.guide/02-project-recipes.md: patterns for libraries, CLIs, services, async apps, and FFI.guide/03-reference-and-cheatsheet.md: quick reference and review notes.workbook/: the chapter-by-chapter workbook with exercises and reflection prompts.src/: standard-library-only example modules that mirror the workbook topics.examples/: runnable binaries for quick practice.
cargo test
cargo run --example basics
cargo run --example reliability
cargo run --example concurrency
cargo run --example async_walkthrough- Read
guide/00-roadmap.mdto understand the progression. - Work through the chapters in
workbook/from01to12. - Run and inspect the binaries in
examples/. - Read the corresponding modules in
src/after each chapter. - Use the development guide when starting your own Rust project.
01-getting-started.md02-ownership-borrowing-lifetimes.md03-types-control-flow-patterns.md04-structs-enums-collections.md05-traits-generics-lifetimes.md06-modules-crates-cargo-docs.md07-error-handling-testing-tooling.md08-iterators-closures-smart-pointers.md09-concurrency.md10-async-rust.md11-macros-unsafe-ffi-performance.md12-building-real-applications.md
- Read each chapter actively instead of passively.
- Write the exercise solutions before looking at the implementation modules.
- Change the sample code and rerun
cargo test. - Turn reflection prompts into flash cards or notes.
- Rebuild one small project at the end of every three chapters.
- Build a CLI notes application with file persistence.
- Build a small HTTP service with typed request/response models.
- Write a reusable library crate with documentation and tests.
- Expose a Rust function to another language through FFI.
- Profile and optimize a data-processing pipeline.
- You can explain ownership without using memorized phrases.
- You can choose between
String,&str,Vec<T>, slices, and iterators confidently. - You can design traits and generic APIs without over-abstracting.
- You can structure a multi-module Cargo project.
- You can test, lint, format, benchmark, and document a Rust codebase.
- You can reason about threads, channels, async tasks, and shared state.
- You can identify when unsafe code is truly necessary and how to isolate it.