Meetup: Rust in open-source critical infrastructure
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?
Ferris is here to save the internet!
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
By Dirkjan Ochtman - Slides
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!
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!
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.