Skip to content

Latest commit

 

History

History
306 lines (180 loc) · 4.42 KB

File metadata and controls

306 lines (180 loc) · 4.42 KB

🦀 Rust Programming Roadmap (Structured from PDF Only)


Module 1: Introduction & Setup

Topics

  • 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

Topics

  • 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

Topics

  • 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

Topics

  • 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)

Topics

  • Enums
  • Structs
  • Traits
  • Impl Blocks

Project 5: Struct-Based System

  • Model data using structs and enums with methods

Module 6: Error Handling

Topics

  • 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

Topics

  • 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

Topics

  • 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

Topics

  • Explicit Lifetime Annotations
  • Lifetime Elision Rules
  • Covariant & Contravariant Lifetimes

Project 9: Lifetime-Safe System

  • Write functions with explicit lifetime handling

Module 10: Concurrency & Parallelism

Topics

  • 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

Topics

  • BTreeMap, BTreeSet
  • Rc, Arc
  • Mutex, RwLock
  • Channels

Project 11: Shared State System

  • Handle shared data across threads safely

Module 12: Testing

Topics

  • Unit & Integration Testing
  • Mocking & Property Based Testing

Project 12: Tested Application

  • Add tests to an existing project

Module 13: Macros & Metaprogramming

Topics

  • macro_rules!
  • Procedural Macros & Custom Derive
  • Domain Specific Languages (DSLs)

Project 13: Macro Usage

  • Implement or use macros in a project

Module 14: Web Development Ecosystem

Topics

  • Axum
  • Actix
  • Leptos
  • Loco
  • Rocket

Project 14: Web Application

  • Build a web service using one framework

Module 15: Asynchronous Programming

Topics

  • Tokio
  • async-std
  • smol

Project 15: Async Application

  • Build an async-based system

Module 16: Networking

Topics

  • reqwest
  • hyper
  • quinn

Project 16: Network Client/Server

  • Send and receive HTTP requests

Module 17: Serialization

Topics

  • Serde
  • json-rust
  • toml-rust

Project 17: Data Serialization Tool

  • Convert data to/from JSON or TOML

Module 18: Database & ORM

Topics

  • Diesel
  • sqlx
  • rusqlite

Project 18: Database Application

  • Store and retrieve data from a database

Module 19: CLI Development

Topics

  • clap
  • structopt
  • termion

Project 19: CLI Tool

  • Build a command-line application

Module 20: Debugging & Performance

Topics

  • rust-gdb
  • rust-lldb
  • rustdoc
  • Criterion.rs

Project 20: Optimized Program

  • Debug and benchmark an application

Module 21: Specialized Domains

Topics

  • 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