Introduction
1.
Lab 01: Unsafe system programming
1.1.
Development setup
1.2.
Memory unsafety
1.3.
Smashing the stack
2.
Lab 02: Hardening system programming
2.1.
Unit testing
2.2.
Stack overflow detection
2.3.
Memory leak detection
3.
Lab 03: Rust and references
3.1.
Your first Rust program
3.2.
Using a Rust tutorial
3.3.
References
3.4.
Lifetimes
3.5.
Lifetimes: a complex case
4.
Lab 04: Error handling
4.1.
Web page retrieval
4.2.
Name identification
4.3.
Sets intersection
4.4.
File system
4.5.
Easier errors
4.6.
Prettier messages
4.7.
Even prettier messages
5.
Lab 05: Complex data structures
5.1.
Recursive data structures
5.2.
Solving common tasks with traits
5.3.
Refactoring with iterators
5.4.
Going generic
6.
Lab 06: Packaging, testing, and fuzzing
6.1.
Packaging
6.2.
Testing
6.3.
Property testing
6.4.
Fuzzing
7.
Lab 07: Unsafe, FFI, procedural macros
7.1.
FFI: Foreign library setup
7.2.
FFI: Low-level bindings
7.3.
FFI: Testing the bindings
7.4.
FFI: High-level bindings
7.5.
Macros: Setup
7.6.
Macros: English-to-French
7.7.
Macros: Chaining computations
7.8.
Macros: Secure token
8.
Lab 08: Parallelism
8.1.
Counting characters
8.2.
Getting big
8.3.
Parallel computing
8.4.
Benchmarking
8.5.
If you have more time
9.
Lab 09: Asynchronous programming
9.1.
An asynchronous client
9.2.
An asynchronous server
Light
Rust
Coal
Navy
Ayu
SSP-RS Lab
Lab 09
In this lab session you will
learn how to build an asynchronous HTTP client
see the benefit of doing asynchronous requests
learn how to build an asynchronous HTTP server