This repository is dedicated to my journey of learning Rust by following The Rust Programming Language (commonly known as The Rust Book). It contains code examples, exercises, and notes that I work on while progressing through the chapters of the book.
Rust is a systems programming language focused on speed, memory safety, and parallelism. The goal of this repository is to document my learning journey as I explore the concepts, features, and examples provided by the official Rust book.
Each chapter of the book introduces new concepts, and I've created corresponding Rust projects and code snippets to practice what I've learned. This repository will act as a reference point for me and others who want to learn or review Rust programming concepts.
Each folder contains:
- Code examples from that chapter.
- Exercises and my solutions to the practice problems.
Chapter | Status |
---|---|
Chapter 1: Getting Started | ✅ Completed |
Chapter 2: Programming a Guessing Game | ✅ Completed |
Chapter 3: Common Programming Concepts | ✅ Completed |
Chapter 4: Understanding Ownership | 🚧 In Progress |
Chapter 5: Using Structs to Structure Related Data | ✅ Completed |
Chapter 6: Enums and Pattern Matching | 🚧 In Progress |
Chapter 7: Managing Growing Projects with Packages, Crates, and Modules | ⏳ Planned |
Chapter 8: Common Collections | ⏳ Planned |
Chapter 9: Error Handling | ⏳ Planned |
Chapter 10: Generic Types, Traits, and Lifetimes | ⏳ Planned |
Chapter 11: Writing Automated Tests | ⏳ Planned |
Chapter 12: An I/O Project: Building a Command Line Program | ⏳ Planned |
Chapter 13: Functional Language Features: Iterators and Closures | ⏳ Planned |
Chapter 14: More About Cargo and Crates.io | ⏳ Planned |
Chapter 15: Smart Pointers | ⏳ Planned |
Chapter 16: Fearless Concurrency | ⏳ Planned |
Chapter 17: Async and Await | ⏳ Planned |
Chapter 18: Object-Oriented Programming Features of Rust | ⏳ Planned |
Chapter 19: Patterns and Matching | ⏳ Planned |
Chapter 20: Advanced Features | ⏳ Planned |
Chapter 21: Final Project: Building a Multithreaded Web Server | ⏳ Planned |
To clone this repository and run the examples, you'll need Rust installed on your machine. Follow the steps below:
- Install Rust via rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Clone this repository:
git clone https://github.com/giorgiosld/rust_book.git cd rust_book
- Navigate to the chapter directory and run the code:
cd guessing_game cargo run
If you'd like to contribute to this repository by suggesting improvements, pointing out mistakes, or adding new exercises and examples, feel free to submit an issue or pull request. Contributions are welcome!
- The Rust Programming Language Book - Official Rust book, the primary resource for this repository.
- Rust Documentation - Official Rust documentation and resources.
- Rust Playground - An online editor to quickly run Rust code.