Thursday 16th February
Rust Nation UK is proud to work with Codurance and Katharina Fey to bring to you three options for a full day of training on Thursday 16th February 2023, directly before the Rust Nation UK conference.
Both course options are a full day (9am-4pm) of hands on immersive training with top professional trainers. Tickets include breakfast, lunch and coffee breaks. Please bring your laptop; power and wifi will be available.
Foundational Rust Workshop (SOLD OUT)
with Mattsi Jansky from Codurance
Basics and types
- What is Rust for, and what makes it different?
- Build process, tooling
- Syntax, control flow, mutability
- Types, compound types
Ownership and borrowing rules
- Understanding how Rust uses ownership & borrowing to provide memory safety without garbage collection
Standard library
- Error handling
- Collections and strings
Testing and TDD
- Learn how to write unit tests in Rust
- Apply TDD to implement a simple program, using what we learned throughout the day
Intermediate Workshop (SOLD OUT)
with Jocelyn Facchini from Codurance
Generics
- Traits
- Generics and static dispatch
- Trait Objects and dynamic dispatch
Borrowing
- Lifetimes
- Closures
Threads
- Writing multi-threaded programs
- Atomic Reference Counting
- Mutex for shared resources
- Channels
Macros
- Tokenisation
- Declarative macros
- Procedural macros
Web Assembly
- Learning how to compile to WASM
- How to interact with the browser from WASM
- Yew Framework
Expert Async Workshop (SOLD OUT)
with Katharina Fey
Foundations of Rust Async
- Futures, Reactors, Runtimes, Pin, Context, Task API
- Writing futures and running them with async-task
- Hands-on: Using Futures via async/await, writing a simple Future that handles some kind of data processing
Structure of a runtime
- Understanding smol-rs
- Understanding async-task
- Async patterns
- The importance of synchronisation
- Synchronisation mechanisms
- Reaction programming (i.e. reacting to signals and events)
- Hands-on: solving one or two) Rust puzzles that require task synchronisation
Writing your own runtime (for fun and profit)
- Defining tasks
- Scheduling work
- Managing state and dependencies