/rust_book

A hands-on journey through the Rust Programming Language Book, featuring practical exercises and code examples to master systems programming with Rust.

Primary LanguageRustMIT LicenseMIT

Learning Rust through The Rust Book 📚

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.

Table of Contents

About

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.

Progress

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

Installation

To clone this repository and run the examples, you'll need Rust installed on your machine. Follow the steps below:

  1. Install Rust via rustup:
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  2. Clone this repository:
    git clone https://github.com/giorgiosld/rust_book.git
    cd rust_book
  3. Navigate to the chapter directory and run the code:
    cd guessing_game
    cargo run

How to Contribute

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!

Resources