Meetup report: Rust for the (Inter)Net
The meetup was specifically oriented towards Rust in an (inter)net setting. We invited two speakers, and I took care of the third talk. We ordered some pizzas, brought a few homemade salads, and invited 35 Rustaceans.
Real API's in Rust
After the introductions we started the meetup with my talk titled "Real API's in Rust". I talked about our experiments at Tweede golf with building a framework for typical REST microservices in Rust. The use of Rocket and Diesel was highlighted, and how macros can be used to reduce the amount of code that actually needs to be written. At the end, the performance of various web frameworks was compared. Our conclusion is that our Rust web framework is useful, but if performance is important Hyper or Actix-web are a better fit. We will publish a blog article that discusses our Rust framework in more detail soon.
Slides are here.
The future web: HTTP 3 in Rust
Dirkjan talked about Quinn, his Rust implementation of the QUIC protocol, which is the underlying protocol of HTTP 3. The various problems addressed by QUIC in HTTP 3 were discussed, such as the head-of-line-blocking, and how TLS-like connections are established. Quinn provides separate crates for the QUIC state machine, the HTTP 3 implementation and an implementation that runs on Linux using Tokio. Organizing the project in separate crates like this sets an example for other crate maintainers. Dirkjan also discussed other (Rust) implementations of HTTP 3, and the politics involved coordinating between them.
Slides are here.
Speed up your builds with Bazel!
Maarten gave us an introduction to Bazel, a build system allowing the user to define a dependency tree of build steps. The system finds out which earlier performed steps can be reused, and which need to be redone. This contrary to Make, which does not provide any guarantee about the consistency of the build products. He illustrated the expressiveness of the language used by Bazel, which is a subset of Python. He also hinted at the possibility of Bazel being very useful in a Rust context, allowing for shorter build times in a CI setting. We’re very interested in trying out Bazel in our own CI setting.
Slides are here.
Videos of the talks
Videos of all three talks are available on Vimeo. Links to the slides are included in the video description.
Please be aware we had a quite minimal video setup, resulting in a not very readable capture of the slides. You'll need to keep the slides at hand to get the full experience.
Combining meetup groups
During one of the breaks, the organizers of the various Rust meetup groups discussed merging into a single Dutch Rust meetup group. We will keep you posted.
As this was our first meetup, we had to figure out quite a bit. Turning our office into a 30+ person conference room in a short time (and back...) and getting the number of pizzas exactly right (oops...) were among the practical challenges.
On the more technical side of things, we tried to record the session so that people could (re)watch the presentations. Unfortunately, the minimalist approach to our video recording setup didn't turn out too well. The combination of a simple camera and a marginal beamer resulted in a watchable but not very readable capture of the presentation. Lesson learned: next time we’ll try to arrange a screen capturing setup, and probably a better camera and beamer. We also learned that about 60% of our guests actually showed up. Next time we’ll be more comfortable to overbook the event by about 30%, with room to spare.
All in all, it was a great evening and a good experience to have under our belt. Next time we’ll be able to host another meetup with more ease and less effort.
Thanks to everyone helping out, to Dirkjan and Maarten and to the attendees for the insightful questions and the interesting chats during the breaks. Feel free to contact us with feedback or ideas for a new meetup. We value your input and like to work with others to push Rust forward. See you next time!