Firenze
November 9th, 2024
November 11th, 2024

Schedule

We've been working tirelessly for months to bring the best and brightest minds in the industry to RustLab.

This version is not definitive: from now to November there will be some minor changes or some additions (we are still working on the social events) but these are going to be the main features of the conference.

See you there!

November 9th, 2024

Day 1
Grand Hotel Mediterraneo
08:30
Registration desk
Networking time

Registration

09:30
Workshop #1
180
min
workshop

Write yourself a shell

One of the things developers use every day is a shell. It comes in many flavors like bash, fish or zsh.
In this workshop, you'll write your own fully functional shell in Rust using the latest best practices with a focus on idiomatic code, with one caveat: you can only use the standard library (no external crates allowed).
You'll play with I/O, error handling, and syscalls while getting more hands-on Rust experience.

LEVEL: Intermediate

Workshop #2
180
min
workshop

Build a Ray Tracer with Rust and wgpu

WebGPU is the novel graphics standard that makes it possible to implement high performance graphical applications on mobile, desktop and the web.
In this workshop, I guide you through the process of using Rust and WebGPU compute shaders for computer graphics applications whose needs go beyond the traditional rasterization pipeline.
Together, we will write a GPU-accelerated ray tracing renderer from scratch!

LEVEL: Intermediate

Workshop #4
360
min
workshop

Building cross-platform UIs with Rust and Slint - SOLD OUT!

As a low level language, Rust is perfectly suitable for making user interfaces the old-fashioned way, with native APIs. However, writing a GUI application in today’s world typically means supporting many platforms.

This workshop introduces Slint, a Rust based declarative GUI toolkit, and will show you how to build GUI applications with Rust. By the end of the workshop, you will have built a fully functioning cross-platform application in Rust.

LEVEL: Intermediate

Workshop #3
360
min
workshop

Build your first web app written in Rust

Curious about Rust? Join us for an exciting, hands-on workshop where you’ll create your very first web application using the language. We’ll guide you through Rust basics, help you build a command-line tool, and then transform it into a fully-fledged web application.

LEVEL: Introductory and Overview

11:00
Coffee break room
Networking time

Coffee break

13:00
Lunch Room
Networking time

Lunch

14:30
Workshop #1
180
min
workshop

Cooking up TUIs with Ratatui

This workshop will walk you through the fundamentals of building terminal user interfaces, shedding light on how they function and giving you a solid grasp of their inner workings.

> The workshop material is published at https://github.com/orhun/rustlab2024-ratatui-workshop

LEVEL: Intermediate

Workshop #2
180
min
workshop

Let's build our first Bevy game!

After an introduction to Bevy, attendees will be able to select a starter kit for a Bevy game, then we'll look at finishing it.
Attendees should be able to leave with a game that run natively on their laptop, in Wasm on their browser, and if all goes well as a game on their mobile phone too.

LEVEL: Intermediate

16:00
Coffee break room
Networking time

Coffee break

18:00
Registration desk
Networking time

See you Tomorrow

Thanks for attending today!

See you tomorrow!

November 10th, 2024

Day 2
Grand Hotel Mediterraneo
09:15
Registration desk
Networking time

Registration

09:45
RustLab Discovery
Networking time

Conference presentation

10:00
RustLab Discovery
45
min
talk

Keynote: Strong software for a safer future

Software today is generally brittle, wasteful and insecure. We can do much better. This talk shows you, as a Rust developer, can contribute to a better status quo through incremental improvements.

The talk will spend most of its time showing you ways to remove human error by using automated tools as much as possible. Our tools can prevent bugs and minimise the impact of any that do occur.

LEVEL: Intermediate

11:00
Coffee break room
Networking time

Welcome coffee

11:30
RustLab Discovery
25
min
talk

Design and Implementation of the `#[diagnostic]` attribute namespace

The talk aims to introduce the `#[diagnostic]` attribute namespace. This new tool namespace allows to hint the Rust compiler to emit a specific error message text in certain situations. It's meant to help crate authors to take control over error messages emitted by the compiler that occur while upholding certain domain specific compile time constraints. The feature was stablized with Rust 1.78.

LEVEL: Advanced

RustLab Deep
40
min
talk

Exploring lending async iterators

Rust async ecosystem is evolving, bringing the opportunity of exploring new ways to express powerful abstractions. Together we will define the concept of a "lending async iterator", assessing its practical usefulness and investigating some interesting implementation details.
We will leverage the power of Rust toward the current limits of the language, showing how it could be improved to make these abstractions easier to express.

LEVEL: Advanced

12:00
RustLab Discovery
25
min
talk

Teaching Rust to Beginners: Dreams and Drawbacks

At Code Your Future, we teach beginners from disadvantaged backgrounds to become professional software engineers. We've mostly been doing this in JavaScript, and a bit of Go.
This talk explores our experiences of teaching software engineering, what makes Rust hard for beginners to approach, and invites individuals to volunteer with us, and companies to partner with us to help us prove that Rust can be a great learning language.

LEVEL: Introductory and Overview

12:30
RustLab Discovery
25
min
talk

Borgo – a Rusty language that compiles to Go

People have been talking about a Simpler Rust for years now. Remove the borrow checker and lifetimes, bolt on a Garbage collector and you should get a fairly solid language for application development. Borgo is my attempt at creating such a language! In this talk, we'll go through the ideas behind it and my experience in building it (Borgo itself is written in Rust). If you ever felt like Rust was too hard at times and wished for a simpler alternative, come and check out Borgo!

LEVEL: Introductory and Overview

RustLab Deep
40
min
talk

Rhino: low-latency key-value database in Rust

Rhino is a key-value database optimised for low-latency edge workloads. This talk is a deep dive into how we leveraged Rust and actors to implement highly concurrent networking services that power Rhino. Strap in!

LEVEL: Intermediate

13:00
RustLab Discovery
25
min
talk

Generating ergonomic C++ APIs using Rustdoc, procedural macros, and Serde

How to integrate your new shiny Rust code into an existing codebase is a common problem. For this you might need to provide an API so that your Rust code can be accessed from the non-Rust side, for example from a C++ codebase. Rust only provides tools out of the box to define a low level C API, and even that can be troublesome. In this talk we want to demonstrate how you can use procedural macros, Rustdoc's unstable JSON format, and Serde to generate an idiomatic and ergonomic C++ API based on your existing Rust API.

LEVEL: Advanced

13:30
Lunch Room
Networking time

Lunch

15:00
RustLab Discovery
30
min
talk

Lightning Talks 10/11

Lightning Talks on the 10/11/2024

To add a lightning talk proposal, please click here: https://survey.typeform.com/to/WJSbl5XZ

  • Adam Leventhal: SDK generation from OpenAPI (and so can you)
  • Felipe Ramos da Silva: Socket-Flow - A Rust async websockets library
  • Thorsten Ball: Optimizing a Rope with bit twiddling
  • Gianluca Randazzo: How I oxidized my Neovim config
  • Domenico Mastrangelo: Axum - a quick intro to web development with rust
RustLab Deep
40
min
talk

Crafting a Linux kernel scheduler in Rust

In the realm of operating systems, the heart of performance lies in the CPU scheduler: a critical component responsible for managing the execution of tasks on a system.
Playing around with CPU scheduling policies has always been a dream for many kernel hackers and OS enthusiasts. However, such material typically remains within the domain of a few core kernel developers with extensive years of experience.
What if we could bring this dream to life and make it really accessible, thanks to sched-ext, eBPF and Rust?

LEVEL: Advanced

15:30
RustLab Discovery
25
min
talk

Chips don't bite! A fearless introduction to µController programming for Rusteaceans

Rust is "A language empowering everyone to build reliable and efficient software." And that is not only true for normal everyday software. But it also empowers you to delve into more niche areas of software development, such as embedded systems. And on the way it opens up new perspectives for you as a developer. No operating system and little memory might seem scary at first, but the compiler has your back! The ecosystem offers great tools, abstractions, and crates which will help you to blink your first LED (The equivalent of "Hello world" in the embedded space).

LEVEL: Introductory and Overview

16:00
RustLab Discovery
25
min
talk

The Guard pattern in Rust

Guards are data structures that guarantee properties at compile time and safely mediate runtime functionality.
We will introduce the Guard pattern in Rust and present a number of use cases.

LEVEL: Introductory and Overview

RustLab Deep
45
min
talk

DTrace for Rust... and everything else too!

DTrace was developed at Sun to understand the whole system, from the lowest levels of the kernel to the highest levels of application abstraction. Since its release in 2003, DTrace has been ported to macOS, Linux, FreeBSD, Windows and others. In addition to dynamic instrumentation, developers can write static hooks in their code in languages from C to JavaScript, and--of course--Rust!
In this session, Adam Leventhal, one of the original authors of DTrace, will discuss the fundamentals of DTrace, Rust su
pport for DTrace, and how DTrace is constantly used at Oxide to debug and performance tune our work in Rust.

LEVEL: Intermediate

16:30
RustLab Discovery
30
min
talk

Lightning Talks 10/11 - Second Session

Lightning Talks on the 10/11/2024

To add a lightning talk proposal, please click here: https://survey.typeform.com/to/WJSbl5XZ

  • Magnus Drangevåg: Newtype or newtrait? Ways around the orphan rule
  • François Mockers: Pathfinding in Rust
  • Matteo Bertini: Array languages
  • Arthur Belleville: How we built a more performant regex engine at Datadog
17:00
RustLab Discovery
40
min
talk

Keynote: Scaling out operational research with Rust

We used Rust to implement a scalable distributed system to handle vehicle routing problems, with hundreds of complete plans solved every second. I will explain why we chose Rust, its strengths in a project like this, how it influenced our software architecture, and how it worked out in the end.

LEVEL: Intermediate

19:00
RustLab Discovery
Networking time

RustBeer

Artistic-Tech Showcase with DJ-set

November 11th, 2024

Day 3
Grand Hotel Mediterraneo
09:30
Registration desk
Networking time

Registration

10:00
RustLab Deep Ocean
40
min
talk

Cooking parsers with winnow

I'm going to share how I started with parser and how I use a special language to collect recipes and share them with friends and family. I built a language designed specifically to write recipes, which is open source: https://github.com/reciperium/recipe-lang

This talk is good for beginners to advanced rust developers who would like to get familiar with parsers.

Hopefully, there will be some live coding.

At the end of the talk, the attendees should be able to write a small parser using winnow, which is very similar to nom.

LEVEL: Introductory and Overview

RustLab Deep Space
40
min
talk

Fearless Refactoring and the Art of Argument-Free Rust

Large professional codebases naturally form conventions and competing conventions lead to messy code. This talk discusses what we learned from creating standards documents and a hackable linter (in Rust) and applying it to large codebases at an organisation with more than 1000 people.

LEVEL: Intermediate

11:00
Coffee break room
Networking time

Coffee break

11:30
RustLab Deep Ocean
40
min
talk

Speed, Safety, Sustainability. Have all 3 with serverless & Rust

Serverless provides a way to ship application code, only using the resources you need when you need them whilst shifting the operational responsibility on to the cloud provider. It enables developers to focus on writing code and shipping features, and doing that in a performant and safe way.

This talk will explore the beauty of this combination, and how it’s a fantastic way to build modern business applications with Rust.

LEVEL: Intermediate

RustLab Deep Space
40
min
talk

Low Latency Rust

What does rust offer for low latency performance optimization? This talk will serve as an introduction and an exploration of performance tuning and what rust offers for engineers working on products with strict performance requirements.

LEVEL: Intermediate

12:30
RustLab Deep Ocean
25
min
talk

How to integrate Javascript in your Rust program

There are many reasons you may want to roll your own JavaScript runtime — building an interactive web app with a Rust backend, extending your platform with a composable plugin system, and more.
Here's an introduction to building your own JavaScript runtime with Rust, where I'll also give ideas for directions in which you can take yours.

LEVEL: Intermediate

RustLab Deep Space
40
min
talk

Unsafe for Work

What's the deal with unsafe? The word alone seems to scare the living hell out of every Rust developer, at the same time it's heavily misunderstood even by the best of us.
No more trust issues. Let's analyze what unsafe is (surprisingly little), and what harm you can cause by using it (less than you think but still enough to wreak havoc).
In the end, we will see if we have practical use for unsafe in our own, real-world software, or if we should consider everything not safe for work.

LEVEL: Advanced

13:00
RustLab Deep Ocean
25
min
talk

Lightning Talks 11/11

Lightning Talks on 11/11/2024.

To add a lightning talk proposal, please click here: https://survey.typeform.com/to/WJSbl5XZ

  • Michal Rostecki: Writing safe wrappers in Rust
  • Santiago Fraire: nix and duren for dev environments
  • Orhun Parmaksız: 7 awesome Rust terminal tools that you should use
13:30
Lunch Room
Networking time

Lunch

15:00
RustLab Deep Ocean
40
min
talk

The currents of concurrency: reasoning with Async Rust

Reasoning through concurrent systems has always been a challenging task. Poor code can be riddled with race conditions, non-terminating cases and other complex concurrency bugs; and even well-written code can be hard to understand. Async programming is an innovative concurrent programming model that rises to this challenge. In this talk, we'll explore reasoning with async Rust. We'll be introduced to its fundamental building blocks, such as `async`, `await`, `join` and `select`, and learn how to predict the behavior of code written with them. We'll build on these to simplify more complex concurrency puzzlers. Finally, we'll explore different approaches to handling concurrent state and see how they compare.

LEVEL: Intermediate

RustLab Deep Space
40
min
talk

From 0 to UI using Slint

Slint is a GPL/commercial/Royalty free licensed, reactive UI toolkit written in Rust. Using a tooling-friendly declarative language to describe the UI, it allows for rapid prototyping and allows for developers and designers to cooperate on the UI.
The Slint language is compiled into Rust code and runs well anywhere, from micro-controllers with a few hundred KiB of RAM all the way up to desktop OS platforms with GUI acceleration and even Android.
This presentation shows how to quickly create a simple UI project using Rust.

LEVEL: Intermediate

16:00
RustLab Deep Ocean
40
min
talk

Profile-Guided Optimization (PGO) for Rust applications: Practical Guide

Profile-Guided Optimization (PGO) is a compiler optimization technique that helps with optimizing software based on runtime statistics. This optimization is available for a long time in the Rustc compiler. I applied PGO to many kinds of software (compilers, databases, log solutions, CLI tools, and many more), collected a lot of carefully hidden traps on my journey, reviewed many open-source projects, and found multiple PGO integration approaches. In this talk, I want to share with you my experience.

LEVEL: Intermediate

RustLab Deep Space
40
min
talk

Don't panic! - Our journey to error handling in Rust

In this talk, I will delve into the transformative journey of error handling in our first Rust project. From an initial state where panic-induced chaos was widespread, making it challenging to pinpoint the root causes of crashes, we navigated through the Rust ecosystem to establish a robust and stable foundation.

LEVEL: Introductory and Overview

17:00
RustLab Discovery
Networking time

Goodbye Rustaceans!

A farewell ceremony to thank you Rustaceans for coming and give some hints about our next edition.

17:15
Coffee break room
Networking time

Coffee break

RustLab is a conference made by Develer.
Develer is a company based in Campi Bisenzio, near Florence. Our motto is : "Technology to give life to your products". We produce hardware and software to create exceptional products and to improve industrial processes and people's well being.
In Develer we have passion for the new technologies and we offer our clients effective solutions that are also efficient, simple and safe for the end users. We also believe in a friendly and welcoming environment where anybody can give their contribution. This passion and this vision are what we've been driven to organize our conference "made by developers for developers".

Subscribe to our newsletter

We hate spam just as much as you do, which is why we promise to only send you relevant communications. We respect your privacy and will never share your information with third parties.
©2024 RustLab | The international conference on Rust in Florence-Design & devCantiere Creativo-Made withDatoCMS