Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/giorgiosld/rust_book

A hands-on journey through the Rust Programming Language Book, featuring practical exercises and code examples to master systems programming with Rust.
https://github.com/giorgiosld/rust_book

rust rust-lang

Last synced: 28 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# Learning Rust through The Rust Book 📚

This repository is dedicated to my journey of learning Rust by following [*The Rust Programming Language*](https://doc.rust-lang.org/stable/book/title-page.html) (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](#about)
- [Progress](#progress)
- [Installation](#installation)
- [How to Contribute](#how-to-contribute)
- [Resources](#resources)

## 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](https://www.rust-lang.org/tools/install):
```bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
```
2. Clone this repository:
```bash
git clone https://github.com/giorgiosld/rust_book.git
cd rust_book
```
3. Navigate to the chapter directory and run the code:
```bash
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

- [The Rust Programming Language Book](https://doc.rust-lang.org/stable/book/title-page.html) - Official Rust book, the primary resource for this repository.
- [Rust Documentation](https://www.rust-lang.org/learn) - Official Rust documentation and resources.
- [Rust Playground](https://play.rust-lang.org/) - An online editor to quickly run Rust code.

---