Course Outline
Introduction * Defining Rust * Rust compared to other programming languages * Key features and architectural overview of Rust Understanding Rust * The lifecycle of Rust applications * System-level mechanics of Rust * Memory safety and ownership principles in Rust Getting Started * Establishing the development environment * Installing Rust as a programming toolchain * Setting up the Rust workspace * Navigating the Cargo package manager Basic Syntax and Core Concepts * Variables and data types in Rust * Control flow structures and loops * Functions and modularization * Ownership and borrowing mechanisms in Rust Error Handling and Panics * Managing errors using Result and Option types * Comparing unwinding and aborting with panic! * Designing custom error types and handling strategies Memory Management in Rust * Distinguishing stack versus heap memory allocation * Utilizing pointers and references in Rust * Memory control via Box and unsafe blocks Structs and Enums in Systems Programming * Defining and manipulating structs * Creating and utilizing enums * Pattern matching capabilities in Rust Asynchronous Programming with Async/Await * Fundamentals of asynchronous programming in Rust * Implementing async/await syntax * Composing futures and integrating async libraries * Investigating the asynchronous ecosystem and associated libraries Traits and Generics * Advanced trait application and associated types * Implementing generic functions, structs, and enums * Trait bounds and trait objects * Exploring trait coherence and orphan rules Advanced Error Handling * Developing custom error types * Sophisticated error handling techniques: try!, the ? operator, and custom error chains * Effective error handling strategies and patterns Macros * Procedural macros: attribute and function-like macros * Declarative macros: macro_rules! and match-like syntax * Advanced macro application and metaprogramming Performance Optimization * Profiling and benchmarking Rust code * Pinpointing performance bottlenecks * Optimization methods: data structures, algorithms, and compiler flags * Developing highly efficient Rust code Unsafe Rust * Grasping unsafe blocks and unsafe functions * Managing raw pointers and mutable aliasing * Building safe abstractions around unsafe code Web Development with Rust * Overview of web development using Rust * Exploring Rust web frameworks such as Rocket, Actix, and Warp * Database interaction * 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.