A hands-on, beginner-to-intermediate Rust learning repository focused on:
- Understanding Rust fundamentals deeply
- Writing idiomatic, safe and performant Rust
- Building real CLI apps and console games
- Learning Rust-specific design patterns
- Preparing for real-world Rust Development
Learn Rust by building, breaking, and fixing small programs-correctly.
- Beginners starting their Rust journey
- Developers transitioning from C/C++/Java/Python
- Intermediate Rustaceans waiting better structure & patterns
- Anyone preparing for Rust interviews or real projects
This repository is:
- 📈 Progressive - concepts build on each other
- 🧠 Concept-first - explain why, not just how
- 🧪 Hands-on - every topic has runnable code
- 🦀 Idiomatic Rust - no forced OOP patterns
- 🏗️ Real-world focused - error handling, testing, tooling
- Rust setup and basics
- Ownership & borrowing
- Structs, enums, pattern matching
- Simple CLI programs
- Traits and generics
- Error handling best practices
- Concurrency and async
- CLI games and mini projects
- Unsafe Rust
- Performance & Profiling
- FFI
- Real-world patterns
See full roadmap -> ROADMAP.md
Each folder contains:
- 📄
README.mdexplaining concepts - 🧩 Small, Focused examples
- 🧪 Exercises
⚠️ Common Mistakes
You are encouraged to read the README first, then run the code.
cd 04-simple-programs/word_counter
cargo runAll examples use stable Rust unless stated otherwise.
Most projects include:
- Unit tests
- Integration tests
cargo fmt&cargo clippy
Contributions are welcome!
- Fix bugs
- Improve explanations
- Add exercises
- Add new mini-projects
See CONTRIBUTING.md
Curated learning resources live in /resources.
This is not another "copy-paste tutorial repo". It focuses on:
- Correct mental models
- Rust's ownership-driven design
- Writing maintainable Rust code
If this helps you, consider ⭐ starring the repo.