LOADING

Channels in Rust: The Art of Concurrency

We’ll take a deep dive into Rust channels — from synchronous channels to asynchronous channels — to explore how message passing enables reliable concurrent programming.

Gaurav Gahlot
Staff Software Engineer
About This Talk

Concurrency in Rust is powerful, but safe and efficient communication between tasks can be tricky to master. In this talk, we’ll take a deep dive into Rust channels — from synchronous channels to asynchronous channels — to explore how message passing enables reliable concurrent programming.

We’ll start with simple synchronous channels and examine common patterns for multi-producer and multi-consumer setups. Then we’ll move to asynchronous channels in Rust’s async ecosystem, showing how channels coordinate tasks in real-world systems. Along the way, we’ll discuss backpressure, error handling, and performance trade-offs, with practical examples inspired by cloud-native workloads like Kubernetes operators, runtime schedulers, and event pipelines.

Attendees will see live demonstrations of channels in action and learn how Rust’s ownership and type system ensures safety while enabling scalable, reliable concurrency. We’ll also compare different channel strategies and patterns to illustrate where design choices impact performance and simplicity.

Attendees will leave with:

- A clear understanding of how synchronous and asynchronous channels work in Rust

- Patterns for multi-producer, multi-consumer messaging- Insights into handling backpressure and errors safely

- Practical knowledge for building scalable, concurrent systems

- Confidence applying Rust channels in real-world cloud-native and async workloads

This talk provides a practical, approachable exploration of Rust channels, empowering developers to write safer and more efficient concurrent Rust programs.

more great talks

Might Be Interesting

Day 2
  —  
4:15 pm
arrow pointing right icon

Beyond println!: Mastering Rust Debugging

This talk explains how Rust debugging actually works: how compiler-generated debuginfo (DWARF/PDB) maps binaries back to source, and how LLDB/GDB interpret that data in practice.

Day 2
  —  
10:10 am
arrow pointing right icon

The Unglamorous Side of Rust Web Development

This technical talk examines the most prevalent pain points facing Rust web developers today and explores how the community is addressing them.

Day 1
  —  
9:00 am
arrow pointing right icon

An Option? Have a slice!

In 2024, I added the `Option::as_slice` and `Option::as_mut_slice` methods to libcore. This talk is about what motivated the addition, and looks into the no less than 4 different implementations that made up the methods. It also shows that even without a deep understanding of all compiler internals, it is possible to add changes both to the compiler and standard library.

Day 2
  —  
3:40 pm
arrow pointing right icon

No cars were harmed for this talk: Automotive Rust, amateur style

I'll initiate you in the art of 'CAN bus sniffing': Connecting to the central nervous system of a modern car, interpreting the data, and seeing what we can build as enthousiastic amateurs.

Day 2
  —  
11:50 am
arrow pointing right icon

Let's build an async runtime together

During this talk we'll build a basic, working async runtime using nothing more than a standard library. The point? To see it's approachable for mere mortals.

Day 1
  —  
12:25 pm
arrow pointing right icon

Procedural Macros 101

This session we will delve into the sometimes murky world of procedural macros - showing some of the great tooling available for understanding the code generated, such as cargo expand, and the key building blocks we will need for writing our own.

See All Events
Join us!

We're looking for amazing speakers.
CFP is open till 10.01.2023

Fill in Call for Papers
location icon

Location

Centrum Konferencyjne POLIN, Poland
stay in touch icon

Follow Us

Contact Us