Chapter 1: Introduction to Rust
- Lesson 1: What is Rust?
- Lesson 2: History of Rust and Its Ecosystem
- Lesson 3: Rust Applications and Use Cases (e.g., Web, Systems, Embedded, etc.)
- Lesson 4: Setting Up the Rust Environment (Installing Rust and Cargo)
- Lesson 5: Writing Your First Rust Program
- Lesson 6: Rust Syntax Basics
- Lesson 7: Working with Code Editors (VS Code, IntelliJ, etc.)
Chapter 2: Variables, Constants, and Data Types
- Lesson 1: Introduction to Variables in Rust
- Lesson 2: Declaring Variables with let and mut
- Lesson 3: Constants and const Keyword
- Lesson 4: Data Types: Scalar and Compound Types
- Lesson 5: Type Annotations and Type Inference
- Lesson 6: Shadowing Variables in Rust
Chapter 3: Ownership, Borrowing and Lifetimes
- Lesson 1: Introduction to Ownership
- Lesson 2: Move Semantics and Borrowing (& and &mut)
- Lesson 3: Rules of Ownership and References
- Lesson 4: Lifetimes: Basics and Annotations
- Lesson 5: Lifetimes in Structs and Functions
Chapter 4: Control Flow
- Lesson 1: Introduction to Control Flow in Rust
- Lesson 2: if, else, and else if Statements
- Lesson 3: Loops: loop, while, and for
- Lesson 4: Pattern Matching with match
- Lesson 5: The if let and while let Constructs
Chapter 5: Functions, Closures and Modules
- Lesson 1: Declaring and Invoking Functions
- Lesson 2: Function Parameters and Return Types
- Lesson 3: Closures and Anonymous Functions
- Lesson 4: Modules and the mod Keyword
- Lesson 5: Using use and pub for Module Re-exports
- Lesson 6: Nested Modules and Module Paths
Chapter 6: Enums, Structs and Pattern Matching
- Lesson 1: Introduction to Enums
- Lesson 2: Working with Structs: Tuple, Unit, and Named Structs
- Lesson 3: Pattern Matching with Enums
- Lesson 4: Struct Update Syntax and Destructuring
Chapter 7: Error Handling
- Lesson 1: Error Handling in Rust: Result and Option
- Lesson 2: Unwrapping Values Safely (unwrap and expect)
- Lesson 3: Error Propagation with?
- Lesson 4: Custom Error Types
- Lesson 5: Working with the thiserror and anyhow Crates
Chapter 8: Collections in Rust
- Lesson 1: Introduction to Collections (Vec, HashMap, HashSet)
- Lesson 2: Working with Iterators and Closures
- Lesson 3: Combining and Transforming Iterators
- Lesson 4: Advanced Data Structures (e.g., BinaryHeap, LinkedList)
Chapter 9: Performance Optimization
- Lesson 1: Unsafe Code and Low-level Programming
- Lesson 2: Writing Efficient Code with Rayon for Parallelism
- Lesson 3: Using FFI for Interoperability with Other Languages
- Lesson 4: Profiling and Benchmarking with criterion
Chapter 1: Modern Rust Features
- Lesson 1: Overview of New Features in Rust Releases
- Lesson 2: Const Generics and Associated Types
- Lesson 3: Async/Await for Asynchronous Programming
- Lesson 4: Macros 2.0 and Declarative Macros
- Lesson 5: Pattern Matching Enhancements
Chapter 2: File I/O and Serialization
- Lesson 1: File Handling Basics (std::fs)
- Lesson 2: Reading and Writing Files
- Lesson 3: Serialization with serde (JSON, YAML, TOML)
- Lesson 4: Asynchronous File Operations
Chapter 3: Advanced Performance Optimization
- Lesson 1: Memory Layout and Allocation
- Lesson 2: Working with Box, Rc, and Arc
- Lesson 3: Using Cow for Optimized Borrowing
- Lesson 4: Profiling and Benchmarking Code
Chapter 4: Cryptography and Security
- Lesson 1: Introduction to Cryptography in Rust
- Lesson 2: Using Libraries like ring and rustls
- Lesson 3: Secure Coding Practices
- Lesson 4: Handling Sensitive Data
Chapter 5: Design Patterns in Rust
- Lesson 1: What are Design Patterns?
- Lesson 2: Creational Patterns | Singleton, Factory Method, Abstract Factory, Builder, Prototype
- Lesson 3: Structural Patterns | Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
- Lesson 4: Behavioral Patterns | Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
Chapter 6: Web Development in Rust
- Lesson 1: Introduction to Rust for Web Applications
- Lesson 2: Building REST APIs with Actix-Web and Axum
- Lesson 3: WebAssembly with Rust
- Lesson 4: Full-Stack Applications with Yew and Leptos
Chapter 7: Advanced Testing and Debugging
- Lesson 1: Unit and Integration Testing
- Lesson 2: Writing Benchmark Tests
- Lesson 3: Mocking and Test-Driven Development
- Lesson 4: Debugging with Rust Tools (e.g., GDB, LLDB)
- Lesson 5: Fuzz Testing with cargo-fuzz
Chapter 8: Multithreading and Concurrency
- Lesson 1: Introduction to Multithreading in Rust
- Lesson 2: Using Threads and std::thread
- Lesson 3: Shared State and Synchronization (Mutex and RwLock)
- Lesson 4: Asynchronous Programming with tokio and async-std
Chapter 9: Networking and Socket Programming
- Lesson 1: Introduction to Networking in Rust
- Lesson 2: Building a TCP Server and Client
- Lesson 3: Working with UDP Sockets
- Lesson 4: Building a Simple Chat Application
- Lesson 5: REST APIs with reqwest
Chapter 10: Building Libraries and Packages
- Lesson 1: Creating a Rust Library
- Lesson 2: Managing Dependencies with Cargo
- Lesson 3: Versioning and Publishing on crates.io
- Lesson 4: Documentation and Testing for Libraries
Chapter 11: Embedded Systems with Rust
- Lesson 1: Introduction to Embedded Rust
- Lesson 2: Working with no_std Environments
- Lesson 3: Interfacing with Hardware
- Lesson 4: Building Firmware with Rust
Chapter 12: Rust in Machine Learning and Deep Learning
- Lesson 1: Introduction to Machine Learning with Rust
- Lesson 2: Popular Libraries (e.g., tch, ndarray)
- Lesson 3: Building Neural Networks with Rust
Chapter 13: GUI Development in Rust
- Lesson 1: Overview of GUI Libraries (egui, iced, druid)
- Lesson 2: Building a Simple GUI Application
- Lesson 3: Event Handling and Interactivity
Chapter 14: Advanced Rust Programming
- Lesson 1: Unsafe Code and Raw Pointers
- Lesson 2: Traits and Trait Objects
- Lesson 3: Procedural Macros and Code Generation
- Lesson 4: Advanced Lifetimes and Generics
Chapter 15: Final Project
- Lesson 1: Create a multi-threaded web application
- Lesson 2: Use machine learning or GUI libraries
- Lesson 3: Package and document your project for crates.io