Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ferrous

A structured Rust learning repository — concepts, experiments, and real projects built from the ground up.

What This Is

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.

Structure

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

Projects

notes-tool

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"

logwatch

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

Progress

Phase 1 — Foundations ✅

  • Variables, mutability, constants, shadowing
  • Data types
  • Functions
  • Control flow
  • Ownership
  • Structs and impl
  • Enums and match
  • Option and Result
  • Modules
  • Project: notes-tool

Phase 2 — Intermediate ✅

  • Closures
  • Iterators
  • Traits
  • Generics
  • Error handling
  • Collections
  • serde
  • clap
  • String types
  • Project: logwatch

Phase 3 — Advanced (in progress)

  • Lifetimes
  • Smart pointers
  • Concurrency
  • Async/await
  • Tokio
  • Trait objects vs generics
  • Custom iterators
  • Unsafe Rust

Phase 4 — Open Source

  • First PR merged

Setup

git clone git@github.com:VINODvoid/ferrous.git
cd ferrous
cargo run

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages