A structured Rust learning repository — concepts, experiments, and real projects built from the ground up.
Learning Rust by building real tools. Each phase covers core concepts followed by a project that uses them. No throwaway exercises — every project is functional.
ferrous/
├── src/ # active scratchpad — current concept being explored
└── projects/
├── notes-tool/ # Phase 1 project — CLI notes manager (add, list, search)
└── logwatch/ # Phase 2 project — real-time log file alerter with regex matching
CLI notes manager. Saves notes to JSON, supports add, list, and search.
cd projects/notes-tool
cargo run add "my note"
cargo run list
cargo run search "keyword"Real-time log file watcher. Tails a file, matches lines against a regex pattern, prints matches in red.
cd projects/logwatch
cargo run -- --pattern "ERROR|PANIC" path/to/file.log
# in another terminal
echo "ERROR: something broke" >> path/to/file.log- Variables, mutability, constants, shadowing
- Data types
- Functions
- Control flow
- Ownership
- Structs and impl
- Enums and match
- Option and Result
- Modules
- Project: notes-tool
- Closures
- Iterators
- Traits
- Generics
- Error handling
- Collections
- serde
- clap
- String types
- Project: logwatch
- Lifetimes
- Smart pointers
- Concurrency
- Async/await
- Tokio
- Trait objects vs generics
- Custom iterators
- Unsafe Rust
- First PR merged
git clone git@github.com:VINODvoid/ferrous.git
cd ferrous
cargo run