This repository serves as a centralized hub for my journey through The Rust Programming Language. Each project represents a core milestone in mastering memory safety, concurrency, and systems-level architecture without a garbage collector.
| Project | Core Concepts | Status |
|---|---|---|
| Minigrep | I/O, Iterators, Lifetimes, Error Handling | β Completed |
| Multi-threaded Server | Concurrency, Thread Pools, TCP Listeners | β Completed |
| Guessing Game | Variables, Match Control Flow, Randomness | β Completed |
1. Minigrep
A CLI tool that replicates the basic functionality of grep. This project focused on Separation of Concerns (moving logic from main.rs to lib.rs) and Test-Driven Development.
graph LR
A[CLI Input] --> B[Config Parser]
B --> C{Search Logic}
C --> D[Case Sensitive]
C --> E[Case Insensitive]
D --> F[Stdout]
E --> F
An implementation of a web server from scratch. The highlight here is the custom Thread Pool implementation to handle multiple requests asynchronously without spawning unlimited threads.
sequenceDiagram
participant Browser
participant Server
participant ThreadPool
participant Worker
Browser->>Server: HTTP Request
Server->>ThreadPool: Execute(Job)
ThreadPool->>Worker: Assign Task
Worker-->>Browser: HTTP Response (200 OK / 404)
- Ownership & Borrowing: Understanding how Rust manages memory at compile-time.
- Error Handling: Moving from
expectto idiomaticResult<T, E>propagation. - Zero-Cost Abstractions: Utilizing iterators and closures for performant code.
- Concurrency: Managing shared state safely using
ArcandMutex.
Each link leads to a standalone repository containing the full source code and unit tests for that specific implementation.