Welcome to my repository! This is where I'm documenting my journey of learning the Rust programming language. It's a collection of projects, exercises, and notes as I explore Rust's powerful features, from its unique ownership system to its incredible performance.
The main goal of this repository is to:
- Solidify understanding: Build practical projects to reinforce core Rust concepts (ownership, borrowing, lifetimes, traits, etc.).
- Track progress: Serve as a personal log of what I've learned and built.
- Showcase work: Create a portfolio of small applications and tools written in Rust.
- Practice: Get hands-on experience with the Rust toolchain, including Cargo,
rustc, and common crates.
Here's a breakdown of the projects you'll find in this repository. Each project is typically a standalone Cargo package.
| Project Folder | Description | Key Concepts Learned |
|---|---|---|
[project_name_1] |
A short description of the project (e.g., "The 'Guessing Game' from The Book"). | io, Rng, match, loops, crates |
[project_name_2] |
A simple CLI tool that does X (e.g., "A 'minigrep' clone"). | File I/O, structs, error handling, argument parsing |
[project_name_3] |
A small utility (e.g., "A multi-threaded web server"). | Concurrency, Arc, Mutex, TCP/IP |
[project_name_4] |
... | ... |
Each project is self-contained. To run any of the projects, please follow these steps:
-
Clone the repository:
git clone [(https://github.com/[YOUR NAME]/Rust-Learning-Projects.git)] cd [YOUR_REPO_NAME] -
Navigate to a project directory:
cd [project_name_1] -
Build and run the project:
cargo run
-
Run tests (if available):
cargo test
These are the primary resources I've been using to learn Rust. I highly recommend them!
- The Rust Programming Language ("The Book"): The official guide and the best place to start.
- Rust by Example: A collection of runnable examples that illustrate various Rust concepts.
- Rustlings: Small exercises to get you comfortable with reading and writing Rust code.
- Advent of Code: Great for solving small, interesting problems with a new language.
The code in this repository is primarily for learning purposes. Feel free to use it as a reference. It is licensed under the MIT License unless otherwise noted within a specific project's directory.