Skip to content

AlbertArakelyan/small-rust-practical-examples

Small Rust Practical Examples

๐Ÿฆ€ A collection of practical Rust projects for learning and mastering the language

Welcome to my Rust learning journey! This repository contains a growing collection of small, practical projects built with Rust. Each project is designed to demonstrate specific language features and programming patterns while serving as real-world examples for fellow Rust learners.

๐ŸŽฏ About This Repository

My Learning Mission

I'm creating this repository as part of my personal journey to learn and master the Rust programming language. As I explore different concepts and features of Rust, I build practical applications that demonstrate these concepts in action.

Knowledge Sharing Philosophy

I believe in learning in public and sharing knowledge with the community. Every project in this repository includes:

  • Comprehensive documentation explaining what was learned
  • Code analysis highlighting key Rust concepts
  • Learning objectives to guide your study
  • Next steps for continued growth

What Makes This Special

  • Real projects, not just snippets - Each is a complete, working application
  • Progressive complexity - Projects build on previously learned concepts
  • Educational focus - Code is written for clarity and learning
  • Community-driven - Open for contributions and suggestions

๐Ÿ“ Current Projects

A simple command-line calculator that demonstrates fundamental Rust concepts including:

  • Variable declarations and mutability
  • Standard library I/O operations
  • String manipulation and parsing
  • Pattern matching with match expressions
  • Basic error handling patterns

Perfect for: Absolute beginners learning Rust syntax and basic operations

A command-line todo application showcasing more advanced Rust features:

  • Custom enums and structs with derived traits
  • Pattern matching and control flow
  • Ownership and borrowing concepts
  • Mutable state management
  • Function decomposition and code organization

Perfect for: Understanding Rust's type system and data structures

๐Ÿš€ Getting Started

Prerequisites

  • Rust toolchain installed (1.70+ recommended)
    • Install from rustup.rs
    • Verify: rustc --version and cargo --version

Running Any Project

Each project is self-contained. Navigate to the project directory and run:

cd [project-name]
cargo run

Project Structure Template

[project-name]/
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ main.rs          # Main application logic
โ”œโ”€โ”€ Cargo.toml           # Project configuration
โ”œโ”€โ”€ Cargo.lock           # Dependency lock file
โ””โ”€โ”€ README.md            # Detailed project documentation

๐Ÿ“š Learning Path

Beginner Level

  1. Start with the Calculator - Learn basic syntax, I/O, and control flow
  2. Move to Todo App - Understand structs, enums, and ownership
  3. Practice with each project's learning exercises

Intermediate Concepts (Coming Soon)

  • Error handling with Result and Option
  • Memory management and lifetimes
  • Trait system and generic programming
  • Testing and documentation
  • Package management and modules

Advanced Topics (Future Projects)

  • Concurrency and async programming
  • Network programming
  • Web development with Rust
  • Systems programming
  • Embedded Rust

๐ŸŽ“ What You'll Learn

Across all projects, you'll master:

Core Language Features

  • Type System - Strong typing, type inference, and safety
  • Ownership - Rust's unique approach to memory management
  • Pattern Matching - Expressive control flow with match
  • Error Handling - Robust error management patterns
  • Concurrency - Safe concurrent programming

Standard Library Mastery

  • Collections - Vec, HashMap, and other data structures
  • I/O Operations - File handling, user input, and networking
  • Iterators - Functional programming patterns
  • String Handling - Working with text efficiently

Programming Patterns

  • Modular Design - Organizing code into logical units
  • Testing - Writing comprehensive tests
  • Documentation - Clear and helpful code documentation
  • Error Recovery - Graceful error handling

๐Ÿ”ฎ Roadmap

Planned Projects

  • File Manager - File system operations and error handling
  • JSON Parser - Working with external crates and data serialization
  • Web Server - Basic HTTP server and networking
  • Database CLI - SQLite integration and data persistence
  • Chat Application - Concurrent programming and networking
  • Game of Life - Performance optimization and algorithms
  • REST API - Web development with frameworks
  • Terminal UI - Rich terminal interfaces

Learning Milestones

  • โœ… Basic Syntax & I/O (Calculator)
  • โœ… Data Structures & Ownership (Todo App)
  • ๐Ÿ”„ Error Handling & Testing (Next projects)
  • ๐Ÿ“‹ Concurrency & Networking (Future projects)
  • ๐Ÿ“‹ Advanced Patterns & Performance (Long-term goals)

๐Ÿค Contributing

For Learners

  • Study the code - Each project is designed for learning
  • Try the exercises - Every README includes learning challenges
  • Experiment - Modify and extend the projects
  • Ask questions - Use issues for clarification

For Contributors

  • Suggest improvements - Better patterns or implementations
  • Report issues - Bugs or unclear documentation
  • Share ideas - New project suggestions
  • Help others - Answer questions and provide guidance

Contribution Guidelines

  1. Educational focus - Changes should enhance learning value
  2. Clear documentation - Update READMEs for any code changes
  3. Progressive complexity - Maintain the learning progression
  4. Code quality - Follow Rust best practices and conventions

๐Ÿ“– Resources

Learning Rust

Community

Tools

๐Ÿ“Š Project Statistics

  • Total Projects: 2 (and growing!)
  • Lines of Code: ~120 lines across all projects
  • Concepts Covered: 15+ core Rust concepts
  • Difficulty Range: Beginner โ†’ Intermediate (planned)
  • External Dependencies: Minimal (focus on standard library)

๐ŸŽฏ My Personal Goals

Short-term (3-6 months)

  • Complete 10+ practical projects
  • Master intermediate Rust concepts
  • Build a small web application
  • Contribute to an open-source Rust project

Long-term (6-12 months)

  • Advanced systems programming
  • Performance optimization techniques
  • Teaching others through workshops
  • Building production-ready applications

๐Ÿ’ก Why This Approach?

Learn by Building

Theory is important, but building real applications cements understanding. Each project solves a practical problem while demonstrating specific Rust concepts.

Progressive Complexity

Starting simple and gradually increasing complexity ensures solid foundations before tackling advanced topics.

Documentation-First

Clear documentation serves both as learning material and as personal notes for future reference.

Community Learning

Sharing knowledge helps reinforce learning and creates opportunities for feedback and collaboration.

๐Ÿ“ License

This repository is licensed under the MIT License - see the LICENSE file for details. Feel free to use these projects for learning, teaching, or as inspiration for your own work.

๐Ÿ™ Acknowledgments

  • The Rust team for creating such an amazing language
  • The Rust community for being incredibly helpful and welcoming
  • Everyone who contributes to open-source Rust projects
  • Fellow learners on this Rust journey

๐Ÿš€ Start Your Journey

Ready to learn Rust? Here's how to begin:

  1. Install Rust - Get the toolchain from rustup.rs
  2. Start with Calculator - It's designed for absolute beginners
  3. Read the Documentation - Each project has detailed learning materials
  4. Experiment - Modify the code and see what happens
  5. Share Your Progress - Tag me on social media with your projects!

Remember: Every expert was once a beginner. Be patient with yourself, celebrate small wins, and enjoy the process of learning this powerful language.


Happy Rust learning! ๐Ÿฆ€โœจ


P.S. This repository is actively maintained as part of my learning journey. Check back often for new projects and updates!

About

Rust practical examples I tried for mastering the language.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages