Introduction
Introduction
()
1. Getting Started with Rust
Introduction to Rust
()
Overview of Rust's key features
()
Setting up the development environment
()
Introduction to Cargo
()
2. Rust Basics
Writing and running your first Rust program
()
Comments
()
Variables and mutability
()
Scalar and compound data types
()
Constants
()
Shadows
()
Macros
()
Control flow: if, else-if, else
()
Control flow: loop and labels
()
Control flow: for and while
()
Control flow: Pattern matching with `match`
()
3. Functions
What are functions?
()
Parameters
()
Return values
()
Statements and expressions
()
4. Ownership
Introduction
()
Stack and heap
()
The string type and ownership
()
Scope and ownership
()
Variables and data interacting with move
()
Variables and data interacting with clone
()
Ownership and functions
()
References and borrowing
()
Immutable and mutable references
()
Rules of references
()
The slice type
()
Rules for slices
()
5. Collections and Error Handling
Structs
()
Methods
()
Enums
()
Vectors
()
Hashmaps
()
Unrecoverable errors
()
Recoverable errors
()
Creating custom error types
()
Logging libraries
()
Logging - Best practices
()
6. Packages, Modules, and Crates
Introduction to crates
()
Introduction to packages
()
Introduction to modules
()
Bringing paths into scope
()
Separating modules into files
()
7. Building Command-Line Tools
Introduction to CLI tools and importance in DevOps
()
Parsing command-line args with `clap`
()
Project: Manage Docker containers using Docker clients in Rust
()
8. Debugging in Rust
Debugging tools
()
Using println! and logging
()
Rust-specific tools: rust-gdb, rust-lldb
()
9. Advanced Rust Concepts
Generic types
()
Traits: Shared behavior
()
Validating references with lifetimes
()
10. Dynamic Memory and Smart Pointers
Introduction to smart pointers
()
Box<T>: Single ownership and heap allocation
()
Rc<T>: Reference counting and shared ownership
()
RefCell<T> and interior mutability
()
Weak<T>: Breaking reference cycles
()
Implementing your own smart pointer
()
11. Closures and Iterators
Closures
()
Rust's iterator ecosystem and custom iterators
()
12. Fearless Concurrency
Threads
()
Message passing
()
Shared-state concurrency: Mutex, Arc<T>
()
Send and Sync traits
()
13. Asynchronous Programming
Concurrent programming
()
Async, await and futures
()
Building a concurrent URL pinger
()
14. Testing and Continuous Integration
Introduction to testing in Rust
()
Organizing tests in Rust
()
Mocking dependencies in Rust
()
Managing and running tests in Rust
()
Building and deploying with CI/CD
()
15. Advanced Features
Advanced traits
()
Default generic type parameters
()
Fully qualified syntax
()
Advanced types
()
Advanced functions and closures
()
16. Network Programming and File Handling
Introduction to network programming in Rust
()
Building TCP clients and servers
()
Building UDP clients and servers
()
Introduction to file handling in Rust
()
Performing common filesystem operations
()
Project: Networked file transfer application (key concepts: TCP communication, file reading/writing, error handling)
()
17. WebAssembly with Rust
Introduction to WebAssembly and why Rust?
()
Setting up your Rust and WebAssembly development environment
()
Interacting with WebAssembly from JavaScript
()
Accessing WebAssembly memory from JavaScript
()
Building a mini project: Log analyzer
()
Conclusion
Final capstone project
()