- What is Rust?
- Why use Rust?
- Installing Rust and Cargo
- IDEs and Rust Toolchains
- Rust REPL (Rust Playground)
- Run a basic Rust program using Cargo
- Syntax and Semantics
- Variables, Data Types and Constants
- Control Flow and Constructs
- Functions and Method Syntax
- Pattern Matching & Destructuring
- Build a simple program using conditions, loops, and functions
- Integers, Boolean, Floats, Character
- Tuple, String, Array
- Vector, HashMap, HashSet
- LinkedList, Stack, Queue, Binary Heap
- Store and manipulate data using vectors and hashmaps
- Ownership Rules & Memory Safety
- Borrowing, References and Slices
- Stack vs Heap
- Create a program demonstrating ownership and borrowing
- Enums
- Structs
- Traits
- Impl Blocks
- Model data using structs and enums with methods
- Option and Result Enumerations
- Propagating Errors and
?Operator - Custom Error Types and Traits
- Handle failures using Result and Option
- Code Organization & Namespacing
- Dependency Management with Cargo
- Publishing on Crates.io
- Split code into modules and manage dependencies
- Trait Definitions & Implementations
- Trait Bounds and Associated Types
- Generics & Type-Level Programming
- Build reusable logic using generics and traits
- Explicit Lifetime Annotations
- Lifetime Elision Rules
- Covariant & Contravariant Lifetimes
- Write functions with explicit lifetime handling
- Threads, Channels and Message Passing
- Atomic Operations & Memory Barriers
- Futures and Async/Await Paradigm
- Build a multi-threaded or async task system
- BTreeMap, BTreeSet
- Rc, Arc
- Mutex, RwLock
- Channels
- Handle shared data across threads safely
- Unit & Integration Testing
- Mocking & Property Based Testing
- Add tests to an existing project
- macro_rules!
- Procedural Macros & Custom Derive
- Domain Specific Languages (DSLs)
- Implement or use macros in a project
- Axum
- Actix
- Leptos
- Loco
- Rocket
- Build a web service using one framework
- Tokio
- async-std
- smol
- Build an async-based system
- reqwest
- hyper
- quinn
- Send and receive HTTP requests
- Serde
- json-rust
- toml-rust
- Convert data to/from JSON or TOML
- Diesel
- sqlx
- rusqlite
- Store and retrieve data from a database
- clap
- structopt
- termion
- Build a command-line application
- rust-gdb
- rust-lldb
- rustdoc
- Criterion.rs
- Debug and benchmark an application
- 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
- Choose one domain and build a project