Schedule
9/12
-
9:00am
9:30amRegistration for Training Attendees -
9:30am
12:30pmThis is an optional paid-addon training. Tickets can be purchased separately from or along with conference tickets.
Fearless Concurrency is a Rust byline, but what does it actually mean? Concurrency in many other languages is consistently difficult, with a high barrier to entry. Rust removes most of the pain points: your data is safe from race conditions (a very common problem, Uber reported over 2,000 data races in their code base). Creating both system threads and green threads is easy, with a robust ecosystem to support you.
Whether your problem is CPU or IO-bound, Rust provides the tools you need to solve your problem - with fast, expressive code that both boosts developer productivity and enhances the safety of your code ecosystem.
A more detailed outline is available here.
-
9:30am
4:00pmStop by a day early to avoid the lines, and to grab some while-supplies-last swag!
Don't forget your SafeAccess green badge, required for entry.
-
1:00pm
5:00pmThis is an optional paid-addon training. Tickets can be purchased separately from or along with conference tickets.
Join Nathan Stocks live for a fast-paced, entertaining, and curiously informative hands-on crash course in the Rust programming language.
This course will provide you with the fundamentals you need to boost you up Rust's steep learning curve. This is a hands-on course with targeted exercises for each subject and projects for you to use your combined knowledge. From using cargo to creating a project, to writing your code, to compiling and running it, to fundamental concepts like ownership, references, & borrowing, this course has everything you need to get up and running with Rust.
A more detailed outline is available here.
9/13
-
8:30am
10:00amSign in to grab your badge, and any pre-ordered swag.
Don't forget to upload your documentation to SafeAccess, and have your green badge ready!
-
10:00am
10:30amD&D references and Rust technical references as metaphors for communication between the community, project, foundation, etc.
-
10:45am
11:15amBattlesnake is a programming game where you build a snake "AI" designed to outlast your opponents. This talk explores using Rust to improve my battlesnake and better understand low-level performance concepts. We'll look at Battlesnake through the eyes of a dynamic language web developer and use Rust to explore new ideas such as memory representations, threads, flame graphs, and more in our quest for Battlesnake greatness!
-
11:20am
11:55amThis talk will introduce the Rust infrastructure team, their responsibilities, and the current infrastructure being used for the Rust programming language. The talk will then focus on the challenge of Rust's growth and managing its associated costs, and introduce three initiatives the infra-team has been working on to address this challenge: compression, content delivery, and caching for GitHub Actions.
The talk will share insights from these initiatives, including lessons learned, and conclude with an outlook on Rust's future growth and the infrastructure needed to support it. The goal of the talk is to showcase the important work of the infra-team and raise awareness about the cost of building Rust while demonstrating that the team is actively planning for the future.
-
12:00pm
12:30pmRust's standard library currently uses a number of nightly features, including some for performance. It is bundled with a specific compiler release, allowing it to take advantage of implementation details that would be undefined behavior for any user library. This talk will highlight some current features, whether they're intended for stabilization, and the general trend towards making the standard library "just like" any other library.
-
12:30pm
2:00pmLunch Break -
2:00pm
2:30pmEffects are notations used on types, functions, and traits to communicate semantic properties about the language. Over the past year the Keyword Generics Initiative has been investigating ways in which we can enhance Rust’s effect system to become more flexible and more consistent.
In this talk we’ll walk you through what effects are, how they’re currently represented in Rust, which limitations they impose on the language, and what the Keyword Generics Initiative is working on to make working with effects in Rust more expressive.
-
2:00pm
2:30pmThis talk will explore how we used Rust to implement and optimize a Quantum State Simulator called Spinoza.
Spinoza started as an in-house tool for researchers and was originally implemented in Go. With the aid of Compiler Explorer, we were able to write a simulator, in Rust, that provides fast and reliable results faster than analogous simulators written in C and/or C++.
-
2:45pm
3:15pmAlways wanted a stable ABI that could model all of Rust's features? Curious about what ABI even means and why it matters? Or keen to learn how to abuse the type system's Turing completeness?
Then this talk is for you.
In this talk, I will guide you through the process of creating a stable ABI for Rust (stabby) as a library that supports niche optimizations in enums and multi-trait objects, letting you use all of Rust across the dynamic linkage frontier.
-
2:45pm
3:15pmProfiling asynchronous applications in Rust can be challenging, given the lack of established best practices and the need to be aware of low-level details that affect code at runtime. This talk offers a practical guide to mastering profiling techniques and tools in Rust in the context of a model tokio-based application.
Attendees will learn how to leverage traditional profilers, explore the tokio-console tool, and instrument their applications using the tracing crate and its extensions. By the end of the talk, attendees will have gained insights into async application profiling and learned how to use profiling outcomes effectively.
-
3:15pm
3:45pmSnack Break -
3:45pm
4:15pmUnix signals are a complicated mess burdened with decades of legacy decisions. However, async Rust gives us the means to handle them effectively in services and command-line tools. In this talk, we'll explore ways to use async Rust to bring these powerful but idiosyncratic tools to bear on our own uses for CLI programs and services.
-
3:45pm
4:15pmAs Rust GUI toolkits proliferate, it's more important than ever to ensure that efforts to implement accessibility aren't spread too thin. Fortunately, Rust's composability and strong package ecosystem make it feasible to implement reusable, cross-platform infrastructure for making GUIs accessible. And because Rust is a true systems programming language, non-Rust projects can use this infrastructure as well.
This talk will describe a project to provide this type of GUI accessibility infrastructure, demonstrate what's working today, and discuss how the community can get involved.
-
4:30pm
5:00pmOverview talk over the use of Rust for a balloon-born cosmic ray experiment and the wider future of rust in the field of astroparticle physics.
-
4:30pm
5:00pmThe Rust Foundation is described as an organization dedicated to stewarding the language, but what does that mean? How does the Foundation operate? Does it control the project or vise versa? Is it just a secret corporate takeover? We'll answer all of this and more
-
5:00pm
6:00pmHappy Hour
9/14
-
10:15am
10:45amDNA sequence data and genomics is really big data which is growing exponentially. Traditional tools for bioinformaticians are largely Python-based but there is a need for speed! That's where Rust could have a big part to play going forwards.
-
10:15am
10:45amThis talk will take us through implementing a garbage collector in Rust for the Python implementation PyPy. This followed the success of "Rust-based Garbage Collection for Python," which was funded by the inaugural Rust Foundation Community Grants.
We will discuss the MMTk GC framework, how we integrated it in PyPy, and detailed experimental results in performance for four GC algorithms: mark-and-sweep, semispace, mark-copy, and Generational copy.
-
10:55am
11:25amLearn how to put together a streaming data system from building blocks in Rust's async ecosystem by following Mary Message on her daring journey to deliver her data. Along the way you'll meet a cast of characters including Pablo PubSub and Beatrix Buffer as you learn about streams, tasks, synchronization, buffering, and the trade offs involved in each.
-
10:55am
11:25amRust's focus on performance has led to the creation of various zero-runtime-cost abstractions. As a result, Rust has adopted compile-time metaprogramming features around its
const
keyword.While many Rustaceans are familiar with techniques such as computing numbers or iterating over data, that only scratches the surface of what
const
is capable of. This talk will teach you howconst
can be used to reduce the cost of FFI, define types in unique ways, and perform logic over trait implementations. -
11:30am
12:00pmLet me tell you a dark story, a story of the Anti-Rust, a story about a small group of heroes venturing beyond the cozy shallows of safe Rust to fight back against the unsafe grasp of Objective-C and deliver us reliable bindings to macOS system APIs.
-
12:00pm
1:30pmLunch Break -
1:30pm
2:00pmGitHub's new code search engine, Blackbird, is written in Rust because it provides safety and high performance. But GitHub's backend services are mostly written in Go, so we implemented the document ingest and query API in Go to take advantage of existing infrastructure.
Learn how we bridged the gap between Go and Rust, starting with RPCs, then using FFI to share core code written in Rust. We'll share our experience using Rust code from Go, and how we plan to move more and more of our code into Rust over time.
-
1:30pm
2:00pm -
2:15pm
2:45pmOver the last 12 months, we conducted the largest study ever of how people learn Rust. We followed the paths of 20,000+ people through the Rust Book to understand why learners struggle with concepts like ownership, traits, modules, and more.
Our goal was to apply these observations towards systematically making Rust easier to learn. That is to say: to develop a science of teaching Rust. Throughout the study, we deployed and evaluated a number of new explanations, analogies, and visualizations to improve the Rust Book.
In this talk, I will describe the design, execution, and findings of this yearlong experiment. I will talk about which teaching strategies worked (and which didn't). And I will discuss the line where science ends and artistry begins in designing effective learning resources for Rust.
-
2:15pm
2:45pm -
3:00pm
3:30pmIn this session we'll discuss using combinations of common macro patterns to parse just about anything with declarative macros.
-
3:30pm
4:00pmSnack Break -
4:00pm
4:30pmAMP Robotics decided building recycling sorting robots wasn't hard enough, and decided to build recycling sorting factories. Faced with an incredibly short timeline, hundreds of different devices to integrate, and the need for performance and reliability, we chose to build a factory control system from scratch in Rust.
It went well…shockingly well.
Hear how we built it, why Rust made it possible, and why we think the paradigm is going to change in how factories are programmed.
-
4:35pm
5:05pmOrganizational Boundary Problems: too many cooks or not enough kitchens?
9/15
-
9:00am
9:30amRegistration -
9:30am
12:30pmJoin the Rust Core Teams for the second annual post-conference UnConf! Registration is separate from a conference ticket (though only conference attendees can join).
Registration is free but required.
Space is extremely limited so register ASAP to secure your spot!
-
12:30pm
2:00pmLunch Break -
2:00pm
5:00pmStick around for the second half of the UnConf; one UnConf registration includes both AM and PM segments.