Workshops
For even more Rust fun, join us at Workshop Day on Wednesday 19th February - the day before the main conference - for a full day of immersive training with leading industry trainers.
This year we are working with Ardan Labs, Mainmatter and Conrad Ludgate to bring you three full-day training options. Taking place on Wednesday 19th February 2025, the day before the Rust Nation UK conference, all course options run from 9am-5pm and include hands-on immersive training. Please bring your laptop and charging cable; power and WiFi will be available. Tickets include refreshments.
Rust, C and C++ Interoperability
with Herbert Wolverson
Intermediate LevelRust plays nicely with others. In this workshop, you will:
- Write C libraries and call them from Rust
- Write Rust code and call it from C
- Automate binding generation
- Connect to other languages (e.g. Go)
- Pitfalls of a lifetime: borrow-checking and avoiding footguns
- Connect C++ classes with Rust
- Strategies for code migration and testing
How to accelerate your Python using Rust, one module at a time
with Luca Palmieri
Advanced LevelAbstract
Python has served you well: you spun up a prototype and iterated quickly, keeping up with the evolving requirements of a successful product. Nonetheless, as time goes on, cracks are starting to show up: an endpoint is slower than it needs to be, a data processing job that took seconds now takes almost an hour, and your infrastructure bill is growing too fast compared to the size of your user base. Engineers are starting to whisper: is it time for a rewrite? Should we pause feature development to rebuild everything on more solid foundations? That's an option, but it's expensive.
There's another path: rather than throwing away your entire Python codebase to start over, you analyse your application and isolate the performance-critical bits—the so-called "hot modules" where your application spends most of its time. You will rewrite those in Rust and package them as a Python native extension. This workshop will teach you how.
We will cover the pyo3 crate, the subtleties of Python's Global interpreter lock, and typical examples that may arise in your daily Rust-Python interoperability work. By the end of the session, you will be well-equipped to seamlessly replace your slow Python modules with easy-to-use and blazingly fast Rust modules.
Pre-requisites
We assume you are familiar with Rust and Python, but we don't assume any prior interoperability knowledge. We will provide a brief explanation and references whenever we rely on advanced features in either language.
Book your spaceMastering Async: Understanding async design patterns and primitives
with Conrad Ludgate
ASYNCGetting started with async Rust is simple. Sprinkle some async here and .await there; it usually compiles and works. However, eventually, you will run into scenarios where you want more concurrent control to unlock more performance from your applications.
In this workshop, you will learn the core primitives of concurrent behaviours in async Rust and how to combine them for more complex emergent behaviours, such as graceful cancellation, stream processing, actor models, and more.
Armed with these tools, you'll be able to design your own concurrent systems. This will not only reduce latencies but also allow you to fully utilize your network and CPU bandwidth, thereby increasing the parallelism of your applications.
Book your space