Rust Belt Rust

Rust Belt Rust Conference Sessions

Day one - workshops

Registration opens at 8am!

Morning: 9am-12pm Afternoon: 2pm-5pm
Rustbridge
Build your own shell in Rust!
Intro to Rust Escher in Rust
Where We're Going, We Don't Need Println! Gauges and Logs: Instrumenting Rust
Unconference/hallway track

Day two - single track

Time Talk
9:00 am Announcements/coffee
9:30 am Core team talk
10:00 am Syntax conveniences afforded by the compiler
10:30 am BREAK
11:00 am Monotron - a 1980s style home computer written in Rust
11:30 am Actix and Actors in Rust
12:00 pm LUNCH
2:00 pm Lightning Talks
2:30 pm Percy: Isomorphic Web Apps with Rust + WebAssembly
3:00 pm BREAK
3:30 pm Evolving API design in Rust
4:00 pm Maintaining the Community
4:30 pm BREAK
5:00 pm Move fast and don't break things: High-performance networking in Rust
5:30 pm State of the crates.io

Rustbridge

RustBridge is a workshop focused on getting people who are underrepresented in tech with a background in another programming language to learn Rust and join the community. We will cover introductory topics, try out some exercism.io problems, and build a web app!

Preregistration is required for this workshop only, please choose the Rustbridge ticket option when buying your conference ticket. Rustbridge workshops are free and for people underrepresented in tech; a $20 deposit reserves your spot and will be refunded at the event.

Ashley Williams
Ashley Williams

Build your own shell in Rust!

One of the things developers use every day is a shell. It comes in many flavors, like bash, fish or zsh. Depending on your background, writing your own shell from scratch might either sound intimidating or pointless. We like to believe that it can be a fun way to gain more hands-on Rust experience. If you want to play with concepts like I/O, error handling, and syscalls, we invite you to participate in this workshop. Who knows, it could also be an opportunity to start your first mid-size Rust project!

Santiago Pastorino
Santiago Pastorino
Santiago Pastorino is WyeWorks co-founder, Ruby on Rails core team member and Rust Developer. He is currently part of NLL WG.
Matthias Endler
Matthias Endler
Matthias Endler is a Backend Engineer at trivago and runs Hello Rust show.

Intro to Rust

Haven't done any Rust? No problem! In this workshop, you'll learn the basics of Rust and what makes it special so that you'll have context for the rest of the conference.

Jake Goulding
Jake Goulding
Jake Goulding started his career writing performance-minded C code before focusing on web applications in Ruby on Rails. He is a member of the Rust Infrastructure Team and maintainer of several Rust crates in the areas of parsing, XML, hashing, and assembly intrinsics. He is a participant in the effort to port Rust to the AVR architecture and creator of The Rust FFI Omnibus. He may be best known for being the #1 contributor on the Rust tag on Stack Overflow.

Escher in Rust

MC Escher's Square Limit is an intricate woodcut of interlocking fish that tessellate a square. This mesmerizing image is full of detail that stimulates a viewer to ponder what she will find at the edge. In this workshop you will recreate the wonderful piece of art in Rust! You will be given the canvas, brushes and paint in the form of rust modules, example code and a instruction manual. Together we will dive into the mind of MC Escher and discover interesting details, symmetries and properties of the Square Limit.

From this workshop you will take away a new sense of awe for the wonderful work of art, an intimate reintroduction to Rust's functional aspects and a feeling of accomplishment by expressing yourself artistically in code.

Daan van Berkel
Daan van Berkel
Daan van Berkel is a enthusiastic software tinkerer with a knack for presenting technical details in a clear and concise manner. Driven by the desire for understanding complex matters Daan is always on the lookout for innovative uses of software

Where We're Going, We Don't Need Println!

In this hands-on workshop, you will learn techniques and tools for understanding badly-behaved Rust programs. We'll cover:

  • Tricks for effective printing
  • Backtraces and panics
  • The many flavours of assertions
  • Best practices for logging
  • Controlling your program with a debugger
  • A sneak peak at how time travel is possible
By working through examples and challenges, we'll learn how to efficiently debug Rust programs without having to recompile them 1000 times.

Josh Bowman-Matthews
Josh Bowman-Matthews
Josh Matthews builds web browsers and sustainable communities for a living at Mozilla. He gets excited about demolishing barriers to participating in open source projects. He also sings in a barbershop quartet.

Gauges and Logs: Instrumenting Rust

Learn the ins and outs of instrumenting your projects. See how PingCAP's Prometheus crate implements efficient static metric collection, how to use slog effectively in high performance systems like TiKV, and some tips on what to collect.

Then, we'll take some time to work together to implement some metrics and log collection in your favorite project.

Andrew Hobden
Andrew Hobden
A Senior Database Engineer for PingCAP and Rust advocate.

Unconference/hallway track

The unconference is a unstructured place with tables, chairs, power outlets, sticky notes, fellow Rustaceans - and whatever you bring to it. It's another place to be during workshop day when you need to continue that fascinating conversation you've been having, work on some code with someone you just met, play a board game, or just sit down for a second. Stop by the Atrium for a minute or an hour!

Jean Lange
Jean Lange
Jean Lange is really super into: smiling, learning about humans, enjoying the present moment. She likes colors, the daily crossword, and coding in Ruby in Pittsburgh. She teaches at Academy Pittsburgh and LFG Board Game Night, but usually on different subjects.

Core Team Talk

Members on the Core Team will update everyone on This Year in Rust!

Ashley Williams
Ashley Williams
Niko Matsakis
Niko Matsakis

Syntax conveniences afforded by the compiler

The Rust compiler provides a number of conveniences that make life easier for its users. It is good to know what these are, to avoid being mystified by what's going on under the hood... the less magical thinking we have of the world, the better.

Example of these conveniences:

  • lifetime elisions
  • type inference
  • syntactic sugar
  • implicit dereferencing
  • type coercions
  • hidden code (e.g. the prelude)
With the help of examples, this talk is going to compare code with and without these conveniences.

Tshepang Lekhonkhobe
Tshepang Lekhonkhobe
An electronic technician by training, I switched careers for I found software development more interesting and accessible (more cheap to practice, and more free learning resources). I've been in Python ecosystem for a number of years and have now switched to Rust for some reason. I've done quiet a bit of doc work for both ecosystems, and some code contributions. I would like to be a solid developer some day.

Monotron - a 1980s style home computer written in Rust

I missed the simplicity of of computers like the C64 and the Apple II and I wondered if I could recreate something like that, but using the Cortex M4 devboard on my desk and a handful of resistors. Can you generate VGA without a video chip? Can you render text without enough RAM for a framebuffer? Can you read from a PS/2 keyboard? Can you get any audio out of it, while doing video at the same time? Can you do it all in Rust, and run tests on an actual PC? Will it run fast enough to be useful?

Jonathan Pallant
Jonathan Pallant
Senior Embedded Systems Consultant at Cambridge Consultants, specialising in wireless communications systems. MEng in Computer Systems Engineering from the University of Warwick, England. Inveterate tinkerer. Raspberry Pi enthusiast. Jonathan is a big fan of the Rust programming language, and manages a number of published crates, including for the Texas Instruments Stellaris Launchpad devkit and the Raspberry Pi SenseHat. Jonathan is also a member of the Rust Embedded Working Group and the organiser of #CambridgeRust. You can find Jonathan online through https://keybase.io/thejpster.

Actix and Actors in Rust

An introduction to actor based concurrency and the Actix crate.

Nathan Hawkins
Nathan Hawkins
I am a systems engineer and software developer. I specialize in distributed, multithreaded, and network programming. Outside of technology, I play a variety of stringed instruments.

Lightning talks

Lightning talks are 5 minutes long, on any topic, by anyone. Come by the Atrium anytime on Friday to propose a lightning talk. Proposing is not a commitment to talk, but a variety of ideas will help us think of more and choose a set that sound really interesting. Also stop by to vote for which talk ideas you are excited to hear. We’ll put together the official schedule after the break on Friday morning and hear the talks after lunch.

Maybe You?!
Maybe You?!
Lightning talk speakers come from all over the world to present for 5 minutes on a topic of their choosing!

Percy: Isomorphic Web Apps with Rust + WebAssembly

Percy is a modular toolkit for building frontend web applications in Rust. It supports serverside rendering out of the box.

In this talk we’ll dive into how Percy works under the hood, starting with a look into its Virtual DOM implementation.

You’ll hopefully walk away with an understanding of the pieces that power Percy - as well as a good sense of how to get started with using Percy to build your own web apps.

Chinedu Francis Nwafili
Chinedu Francis Nwafili
My name is Chinedu Francis Nwafili and I’m a developer with a passion for the modularity and great tooling. When not chasing my unofficial goal of becoming a four star chef - you can find me working on open source modules, tweeting about graphics programming or blogging about building a 3d game in the browser.

Evolving API design in Rust

As Rust is a young language containing many innovative features, questions about how to structure Rust libraries and API's are common. Heavy use of metaprogramming and trait constraints can make libraries hard to understand and use, but also bring great power to reason about programs at compile-time. How do you design a library that exploits the power of Rust without making new users say 'This is way too complicated to bother with'? We will discuss these issues using an existing Rust crate as a case study in both designing an API and how it is influenced by the API decisions of the crates it uses as dependencies.

Simon Nicholas Heath
Simon Nicholas Heath
Simon is a recovering geologist who has always been interested in programming and a general language nerd, and now works as a software engineering consultant. He started using Rust seriously shortly after the 1.0 release and is interested in using it in video games, operating systems and distributed network infrastructure.

Maintaining the Community

Coming soon!

Arshia Mufti
Arshia Mufti

Move fast and don't break things: High-performance networking in Rust

What makes Rust different is not that you can write high-performance, bare-metal code. What makes Rust different is that when you write that code, it is clean and easy to use, and you are confident in its correctness.

In this talk, we discuss a new, high-performance networking stack being written in pure Rust. We discuss how Rust has allowed us to squeeze every last drop of performance out of the stack without sacrificing usability, productivity, or the confidence that our code is bug-free. Examples of optimizations include zero-copy parsing and serialization, stack-allocated packets, statically-typed protocol implementations, and more.

Joshua Liebow-Feeser
Joshua Liebow-Feeser
Josh is a security engineer at Google working on Fuchsia, where he gets to program in Rust all day long. He also programs in Rust as a hobby, which makes him very well-rounded.

State of the crates.io

Crates.io is a critical piece of Rust's infrastructure. If it goes down, there's a good chance that your builds will stop working. In this talk we'll learn about what's happened in the last year to improve the resiliency and performance of the site. We'll look at what the plans are for the future, and you'll learn how you can get involved.

Sean Griffin
Sean Griffin