Repository files navigation 🦀 Rust Programming Roadmap (Structured from PDF Only)
Module 1: Introduction & Setup
What is Rust?
Why use Rust?
Installing Rust and Cargo
IDEs and Rust Toolchains
Rust REPL (Rust Playground)
Project 1: First Rust Program
Run a basic Rust program using Cargo
Module 2: Language Basics
Syntax and Semantics
Variables, Data Types and Constants
Control Flow and Constructs
Functions and Method Syntax
Pattern Matching & Destructuring
Project 2: Basic Control Flow Program
Build a simple program using conditions, loops, and functions
Module 3: Data Structures
Integers, Boolean, Floats, Character
Tuple, String, Array
Vector, HashMap, HashSet
LinkedList, Stack, Queue, Binary Heap
Project 3: Data Collection Program
Store and manipulate data using vectors and hashmaps
Module 4: Ownership System
Ownership Rules & Memory Safety
Borrowing, References and Slices
Stack vs Heap
Project 4: Memory-Safe Data Handling
Create a program demonstrating ownership and borrowing
Module 5: Constructs (Core Abstractions)
Enums
Structs
Traits
Impl Blocks
Project 5: Struct-Based System
Model data using structs and enums with methods
Option and Result Enumerations
Propagating Errors and ? Operator
Custom Error Types and Traits
Project 6: Error-Safe Program
Handle failures using Result and Option
Module 7: Modules & Crates
Code Organization & Namespacing
Dependency Management with Cargo
Publishing on Crates.io
Project 7: Multi-Module Project
Split code into modules and manage dependencies
Module 8: Traits & Generics
Trait Definitions & Implementations
Trait Bounds and Associated Types
Generics & Type-Level Programming
Project 8: Generic Implementation
Build reusable logic using generics and traits
Module 9: Lifetimes & Borrow Checker
Explicit Lifetime Annotations
Lifetime Elision Rules
Covariant & Contravariant Lifetimes
Project 9: Lifetime-Safe System
Write functions with explicit lifetime handling
Module 10: Concurrency & Parallelism
Threads, Channels and Message Passing
Atomic Operations & Memory Barriers
Futures and Async/Await Paradigm
Project 10: Concurrent Program
Build a multi-threaded or async task system
Module 11: Advanced Topics
BTreeMap, BTreeSet
Rc, Arc
Mutex, RwLock
Channels
Project 11: Shared State System
Handle shared data across threads safely
Unit & Integration Testing
Mocking & Property Based Testing
Project 12: Tested Application
Add tests to an existing project
Module 13: Macros & Metaprogramming
macro_rules!
Procedural Macros & Custom Derive
Domain Specific Languages (DSLs)
Implement or use macros in a project
Module 14: Web Development Ecosystem
Axum
Actix
Leptos
Loco
Rocket
Project 14: Web Application
Build a web service using one framework
Module 15: Asynchronous Programming
Project 15: Async Application
Build an async-based system
Project 16: Network Client/Server
Send and receive HTTP requests
Serde
json-rust
toml-rust
Project 17: Data Serialization Tool
Convert data to/from JSON or TOML
Module 18: Database & ORM
Project 18: Database Application
Store and retrieve data from a database
Module 19: CLI Development
Build a command-line application
Module 20: Debugging & Performance
rust-gdb
rust-lldb
rustdoc
Criterion.rs
Project 20: Optimized Program
Debug and benchmark an application
Module 21: Specialized Domains
Game Dev: bevy, fyrox, ggez, macroquad, wgpu-rs
GUI: tauri, gtk-rs, relm
Embedded: embedded-hal, rppal, nrf-hal
WASM: wasm-bindgen, wasm-pack, wasmer
Cryptography: rust-crypto, sodiumoxide, ring
Project 21: Domain Project
Choose one domain and build a project
About
Rust Programming Course: Complete Learning Path
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.