Async Rust
Course objectives
Participants will learn how to:
- work efficiently and safely with threads in Rust
- safely synchronize access to data using mutexes, and use atomic types and channels
- recognize when async/await asynchronicity is a better choice than threads
- understand how runtimes (Tokio, async-std) operate
- test and debug asynchronous code
Course syllabus
Concurrency vs. Parallelism
- Basic concepts of Asynchronous Programming
Threads in Rust
- Threads in Rust
- Scoped Threads
- Shared Ownership & Reference Counting
- Borrowing and Data Races
- Interior Mutability -
Cell,RefCell,Mutex,RwLock,Atomics&UnsafeCell - Thread Safety -
Send&Sync - Locking - Mutexes and RwLocks
- Waiting - Parking and Condition Variables
- Channels
- Atomics & Memory Ordering
Async Programming in Rust
- Working with Futures
async/await- Async Runtimes,
- Async networking
- Reactive Programming
- Testing and Debugging Async Code
- Design Patterns in Async Rust
Prerequisites
Working knowledge of Rust.