This repository is a personal learning journey through the Rust programming language. The primary goal is to build proficiency in Rust fundamentals, syntax, and best practices. A secondary objective is to explore integrating Rust with Python, enabling high-performance extensions and interoperability between the two languages.
The repository is organized by day/topic, with each directory containing practical examples and exercises that progressively build understanding of Rust concepts.
rust-practice-2025/
├── LICENSE
├── README.md
├── projects/ # Learning projects organized by topic
│ ├── hello_world/ # Hello World and basic project setup
│ ├── primitiveDataTypes/# Primitive data types (integers, floats, booleans, chars)
│ ├── compoundDataTypes/ # Compound data types (tuples, arrays)
│ └── functions/ # Functions, parameters, and return values
└── rustlings/ # Interactive Rust exercises
├── exercises/ # Progressive exercises covering all Rust concepts
└── solutions/ # Solution files for reference
The recommended way to install Rust is through rustup, the official Rust toolchain installer.
On macOS, Linux, or Unix-like OS:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shOn Windows: Download and run rustup-init.exe
After installation, restart your terminal or run:
source $HOME/.cargo/envVerify installation:
rustc --version
cargo --versionTo update Rust to the latest stable version:
rustup updateInstall useful Rust components:
# Rust formatter
rustup component add rustfmt
# Rust linter
rustup component add clippy
# Rust Language Server (for IDE support)
rustup component add rust-analyzerIf you ever need to uninstall Rust:
rustup self uninstall- Master Rust fundamentals: ownership, borrowing, lifetimes
- Understand Rust's type system and memory safety guarantees
- Build proficiency with Rust's tooling (Cargo, rustc, rustfmt, clippy)
- Explore systems programming concepts
- Learn Rust-Python interoperability using PyO3 or similar tools
Rustlings is a collection of small, focused exercises designed to teach Rust through hands-on practice. It's an official Rust project that helps you learn by reading, writing, and fixing Rust code. Small exercises to get you used to reading and writing Rust code - Recommended in parallel to reading the official Rust book. 📚️
Rustlings provides bite-sized exercises that start simple and gradually increase in complexity. Each exercise is a small Rust program with intentional errors or missing code that you need to fix. The exercises cover core Rust concepts including:
- Variables and mutability
- Functions and control flow
- Data types and structures
- Ownership, borrowing, and lifetimes
- Error handling
- Traits and generics
- Testing and much more
-
Installation:
curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh | bashOr with Cargo:
cargo install rustlings
-
Getting Started:
rustlings init cd rustlings rustlings watch -
Working Through Exercises:
- Run
rustlings watch- it will automatically check your solutions as you save files - Open exercises in your editor (located in the
exercises/directory) - Read the instructions and hints in each file
- Fix the code to make the tests pass
- Use
rustlings hint <exercise_name>if you get stuck - Progress through exercises sequentially or jump to specific topics
- Run
-
Key Commands:
rustlings watch- Auto-check solutions as you workrustlings verify- Check all exercises at oncerustlings run <exercise_name>- Run a specific exerciserustlings hint <exercise_name>- Get a hint for an exerciserustlings list- Show all exercises and their status
- Learn by doing: Active practice reinforces concepts better than passive reading
- Immediate feedback: The watch mode provides instant feedback on your solutions
- Structured progression: Exercises build on each other logically
- Complements The Book: Works perfectly alongside reading The Rust Programming Language
- Low commitment: Each exercise takes just a few minutes, perfect for quick learning sessions
- The Rust Programming Language Book - The official book for learning Rust, also known as "The Book"
- Rust by Example - A collection of runnable examples illustrating various Rust concepts
- Rustlings - Small exercises to get you used to reading and writing Rust code
- Rust Standard Library Documentation - Comprehensive documentation for the standard library
- The Cargo Book - Learn about Rust's package manager and build system
- Rust Language Cheat Sheet - Quick reference for Rust syntax and concepts
- Rust Cookbook - A collection of simple examples demonstrating good practices
- Asynchronous Programming in Rust - Guide to async/await in Rust
- PyO3 - Rust bindings for Python, enabling Rust extensions for Python
- maturin - Build and publish Rust-based Python packages
- rust-cpython - Alternative Rust bindings for Python
- Rust Playground - Try Rust in your browser
- This Week in Rust - Weekly newsletter about Rust updates
- Rust Users Forum - Community discussion forum
- r/rust on Reddit - Rust community on Reddit
| Project | Topic | Status |
|---|---|---|
| hello_world | Hello World, Project Setup | ✅ Complete |
| primitiveDataTypes | Primitive Data Types (integers, floats, booleans, chars) | ✅ Complete |
| compoundDataTypes | Compound Data Types (tuples, arrays) | ✅ Complete |
| functions | Functions, Parameters, Return Values | ✅ Complete |
Last updated: November 24, 2025