Course Outline
Introduction
* What is Rust?
* Rust compared to other programming languages
* Summary of Rust features and architectural design
Understanding Rust
* The lifecycle of a Rust program
* Rust’s operation at the systems level
* Memory safety and ownership principles in Rust
Getting Started
* Setting up the Development Environment
* Installing Rust as a programming toolchain
* Configuring the Rust environment
* Exploring the Cargo package manager
Basic Syntax and Concepts
* Variables and data types in Rust
* Control flow and loops
* Functions and modules
* Ownership and borrowing mechanics in Rust
Error Handling and Panic
* Managing errors using Result and Option types
* Unwinding versus aborting with panic!
* Custom error types and handling strategies
Memory Management in Rust
* Stack versus heap memory allocation
* Pointers and references in Rust
* Memory management via Box and unsafe blocks
Structs and Enums in Systems Programming
* Defining and utilizing structs
* Creating and employing enums
* Pattern matching in Rust
Asynchronous Programming with Async/Await
* Introduction to asynchronous programming in Rust
* Working with async/await syntax
* Composing futures and integrating async libraries
* Investigating the async ecosystem and supporting libraries
Traits and Generics
* Advanced trait usage and associated types
* Implementing generic functions, structs, and enums
* Bounds and trait objects
* Exploring trait coherence and orphan rules
Advanced Error Handling
* Creating custom error types
* Advanced techniques: try!, ? operator, and custom error chains
* Error handling strategies and design patterns
Macros
* Procedural macros: attribute and function-like macros
* Declarative macros: macro_rules! and match-like syntax
* Advanced macro usage and metaprogramming
Performance Optimization
* Profiling and benchmarking Rust code
* Identifying performance bottlenecks
* Optimization techniques: data structures, algorithms, and compiler flags
* Writing high-performance Rust code
Unsafe Rust
* Understanding unsafe blocks and functions
* Working with raw pointers and mutable aliasing
* Creating safe abstractions around unsafe code
Web Development with Rust
* Overview of web development in Rust
* Exploring Rust web frameworks: Rocket, Actix, Warp, etc.
* Interacting with databases
* Deployment options and strategic considerations
Testimonials (2)
Very good topic structure, perfect presentation, very high level of trainer's knowlwdge. Flawless infrastructure.
Tibor Pozsgai
Course - Rust Advanced
Solid introduction to rust with advanced elements like macros. Practical code exercises, a lot of side comments, free discussion and consultations.