Meetup: Rust in open-source critical infrastructure

Erik
Co-owner & Director of Open Source
Meetup: Rust in open-source critical infrastructure
I’ve organized a couple of Rust meetups in The Netherlands this year, and last was not least. On Nov 30 we had four very interesting talks and a cool crowd at the Rust in critical infrastructure meetup in Amsterdam. A round-up.

Where Rust shines

For a Rust organizer, it is not easy to cater to the needs of all interested. We have beginners joining our meetups as well as advanced Rusteceans. And then you have domains like embedded, web, systems programming, WebAssembly and what have you. Why does Rust have to be so damn versatile?

A topic we hadn't covered is internet infrastructure. Rust can obviously play a big part in making the internet safer, in creating robust and memory-safe alternatives for current C implementations. In fact, quite a few contributions come from Dutch open-source engineers working on vital parts of the internet, such as TLS (Transport Layer Security) and routing. So why not let them showcase that work?

Rust in critical infrastructure Ferris is here to save the internet!

The talks

We had some exciting speakers on stage talking about the Network Time Protocol, packaging, GATs (Generic associated types) and TLS.

And yes, you can watch those talks! Check out the playlist on the Rust Nederland YouTube channel.

A quick run-through:

The Network Time Protocol in Rust

NTP is how the internet keeps time, and ntpd-rs is a new implementation in Rust, started in April of 2022. The work is funded by Prossimo, a project of ISRG, the creators of Let's Encrypt. I'm not entirely impartial here, as our company, Tweede golf, is doing the work, and the lead developer David is my colleague.

Surprisingly David's talk is not so much about the protocol itself, but rather why Rust is a good choice for this project, and specifically how the team used fuzzing to catch problems in the implementation.

By David Venhoek (Tweede golf) - Slides

Packaging for the masses

NLnet Labs have been working on open-source software for the benefit of the Internet for many years, and have recently started using Rust for new projects. As their software is widely used, they quickly ran into questions about deployment. Ploutos is their answer to the need to package Rust projects and automate the creation of RPM and DEB packages, as well as docker images.

Ximon walked us through that process and - impressively - gave a live demo that successfully completed at exactly the time his talk was meant to finish. Magic!

By Ximon Eighteen (NLnet Labs) - Slides

GATS ARE STABLE – why is that a big deal?

If there is one feature that Rust developers have been waiting, hoping, praying for it is GATs (Generic associated types). And now that it's finally here and the enigma is lifted, you might feel disenchanted. Was it worth the wait? DON'T PANIC. Martin is here to show you the supernatural powers of GATs.

By Martin Hoffmann (NLnet Labs) - Slides

Rustls - TLS library in Rust

Dirkjan Ochtman was our last speaker of the evening. He is an active developer and maintainer in the Rust ecosystem, and has been for many years. His open-source work includes well-known crates such as chrono, trustdns and indicatif. Today he showed us what TLS is all about, and what his work as co-maintainer of rustls entails.

By Dirkjan Ochtman - Slides

Thank yous

Thanks to all who joined in and special thanks to the speakers, Alex Band of NLnet Labs for hosting, and Rik Arends for taking care of the video recordings!

And thanks to our sponsors NLnet Labs, Tweede golf and Makepad.

The Rust Nederland meetup group

The meetups we do are run via the Rust Nederland group on meetup.com, meetup.com/rust-nederland.

Rust Nederland organizes meetups all around NL, i.e. we are not bound to one city, hence the name of the group. Join our group if you want to attend future events.

If you feel like hosting a meetup or helping out in organizing one, please contact me!

Stay up-to-date

Stay up-to-date with our work and blog posts?

Related articles

We're proud to announce that 5 October 2023 marked the first stable release of ntpd-rs!

For the last couple of months we at Tweede golf have been working on implementing a Network Time Protocol (NTP) client and server in Rust.

The project is a Prossimo initiative and is supported by their sponsors, Cisco and AWS. Our first short-term goal is to deploy our implementation at Let's Encrypt. The long-term goal is to develop an alternative fully-featured NTP implementation that can be widely used.

For the last couple of months, we've been working on a Rust implementation of the Precision Time Protocol called Statime ("statim" is Latin for immediately), and we're proud to announce the completion of the first phase of the project.