This Week in Rust - Issue 341 and 342Back to Episode Page
Nell Shamrell-Harrington: Hello everyone and welcome back to the This Week in Rust podcast! This episode will cover both last week and this week’s issues of the newsletter.
As always, I’m Nell Shamrell-Harrington, lead editor of This Week in Rust and a Sr. Staff Engineer at Mozilla.
We have a lot to highlight today, so let’s dive in.
Last week’s issue — This Week in Rust issue 341 — had several Rust community announcements.
First, RustConf 2020’s registration is now open! This year’s conference will be a virtual event on Thursday August 20. We have some great speakers lined up including Siân Griffin, Ashley Hauck, Jane Lusby, and many more. Make sure to register today and join us as we beam RustConf to screens across the globe.
The 2020 Rust Contributor Survey is now open! This short anonymous survey should only take a few minutes to fill out but will greatly help us understand what kinds of problems people experience when they’re contributing to Rust and what we can do to address them. This survey is targeting current, past, and future contributors to Rust. We’re particularly interested in hearing from new or prospective code contributors. Whether you’re a frequent contributor already or someone who has only thought about contributing, please take a few minutes to fill out the survey before June 10, 2020.
The Rust Core team has released a retrospective on the 2018 rust-lang.org re-design. This retrospective is blameless and forward looking and highlights the lessons learned for the next time we the Rust community take on a similar project. These lessons can likely be applied to nearly any project that must be coordinated over a large group of volunteers.
Have you ever thought about contributing to Rust? Give Elinyvia’s blog post on Contributing to Rust a read. You’ll hear the story of their first pull request to the Rust repo, joining the triage work group, and developing additional pull requests that dove deeper into the Rust language. Their hope is that more people — especially beginners in both Rust and open source — will not be afraid of engaging with the Rust project. Quote “There are things for people of all skill levels to work on.” End quote.
Log Rocket has posted a tutorial on building a WebSocket server with Rust. This tutorial uses the warp web framework - especially its capability to support web sockets. Follow along with it to build a basic message relay service. Clients will be able to connect to it via web sockets and receive real-time messages, which are published on the service.
Kitsu has written a guide to custom types in Diesel. Diesel is an ORM — or object-relational mapping tool — written in Rust that supports some of the most popular relational databases. Read their article to learn more about how you can implement your own custom types and write conversions that allow you to insert and query them in your own databases.
Have you heard of a technique for bugs called fuzzing? As Hackeriet defines it in their blogpost “Fuzzing Sequoia-PGP”, it is a technique where you generate random input to functions and observe the execution flow in order to detect problems. They will introduce you to the cargo fuzz framework and how to use it to test Rust functions. It detects problems like overflows, attempts to parse invalid data, attempts to read nonexistent data, and more.
If you are in the mood for some computer science focused content, you’ll like the articles “Sorting Algorithms in Rust” by Kirill Vasiltsov and “3D boids swimming in perfect harmony” by Ishan Bhankua. “Sorting Algorithms in Rust” features Rust implementations of the classic quick sort, bubble sort, and merge sort algorithms. Boids is an artificial life program which simulates the flocking behavior of birds. The “3D boids swimming in perfect harmony” series implements the classic boids algorithm in Rust to quote “simulate a group of virtual agents (boids) that will swim around an enclosed space behaving like a school of fish.” I can confirm these boids are very interesting and very cute.
I have been happy to see the growth of Rust content for non-English speaking audiences. Roberto Huertas has begun a Youtube series called “Aprende Rust en español” or “Learn Rust in Spanish.” They estimate it will grow to 150 10 minute videos that explore Rust concepts from the most basic to the most advanced.
Speaking of videos, issue 341 of This Week in Rust also includes a video on using Rust and WASM to build Bitcoin infrastructure by Nicole Zhu, a new entry in the Crust of Rust series on Iterators, and a recording of the Rust and Tell Berlin monthly meetup. Give them a watch to see Rustaceans in action!
Moving on to this week’s issue: issue number 342. Here are the highlights.
This week Rust 1.44.0 was announced! Rust 1.44 is a small release, with cargo tree integrated into Cargo itself and support for async/await in no_std contexts. Additionally, in the announcement, the Rust core team also encouraged everyone to take the time to learn about racial inequality and to support the Black Lives Matter movement.
Stack Overflow recently released the results of its 2020 survey and, for the fifth year in a row, Rust was named the most loved programming language! Chances are, if you’re listening to this podcast, you already love Rust. But if you find yourself needing to help someone else understand it, David Ramel’s article called “So What’s Up with Microsofts’s (and Everyone Else’s) Love of Rust” will help you out. Additionally, Ryan Donovan’s article “Why the developers who use Rust love it so much” highlights several quotes from members of the Rust community explaining what the language means to them.
If you have experienced challenges with — or if you are curious about — writing Rust Cloud-native applications in a team with differing levels of experience — Luca Palmieri has released chapter one in his ongoing book called “Zero to Production.” This chapter covers Rust toolchains, project setups, IDE options including rust-analyzer and IntelliJ Rust, and setting up a Continuous Integration pipeline.
This week’s issue also includes several links to other Rust newsletters that dive deeper into different areas of the Rust ecosystem. These newsletters include “This Month in Rust OSDev”, “This Month in Rust GameDev”, “This month in rustsim” — which focuses on the use of Rust in numerical simulation — and the Rust in Blockchain newsletter. Pour yourself another cup of coffee and get reading!
If you are still in lockdown and you’d like to use some of your time to sharpen your computer science skills, Sachan Ganesh has written an article on implementing graph and tree traversals in Rust. While you’re in an academic state of mind check out a new paper from Cornell University called “Memory-Safety Challenge Considered Solved? An Empirical Study with All Rust CVEs.”
As mentioned before, we at This Week in Rust love featuring content that extends beyond our English speaking audience. This week’s issue features a Chinese language article on “Simple sorting algorithms in Rust” and an Indonesian language article on the reasons for programming in Rust. If you write or read articles on Rust in languages other than English, please submit them to This Week in Rust.
To see even more Rustaceans in action, check out this week’s featured videos. They include “Rust Web development: Boilerplate free with Rocket” from the Genus-v Programming channel, “Educational Rust live coding — Building a web app — Part 4” by David Pedersen, “Iterators” by Youtube user danlogs, a livestream on “Rust Programming: Browser computation with WebAssembly” by Twitch user occupy_paul_st, and a new episode in the “Jonathan Teaches Jason Rust!” series by Jason Turner. Pour another cup of coffee — or tea if you prefer — and dig into all of this fantastic content.
If you have always wanted to contribute to Rust Open Source projects, but don’t know where to start, look in the Call for Participation section for tasks that you can pick up and get started with. Issue 341 featured several issues from the ruma-events project — this project contains serializable types in the Matrix specification that can be shared by client and server code. Additionally, Alex Dukhno is looking for contributors to help with a database management system project called, appropriately, database.
This week in issue 342 we feature several issues from the maud project. Maud is an HTML template engine for Rust which is implemented as a macro which compiles your markup to specialized Rust code.
Check these issues out today and get your pull requests in!
This week is a quieter week for RFCs — no RFCs were approved this week, no RFCS were proposed this week, and no RFCs are currently in final comment period. There are, however, several tracking issues and pull requests that are in final comment period, all with a disposition to merge. Take a look at that section of the newsletter for all of the details.
As for events, we continue to see most events being held online during the ongoing COVID-19 pandemic. You can tune in from anywhere to online meetups in Dallas, TX, Wroclaw, PL, Berlin, San Diego, CA, Zurich, CH, and Turin, IT.
There are also a few meetups that may be held in person — including in Columbus, OH, Lehi, UT, Vancouver, BC, and Durham, NC. Please make sure to check the meetup pages for each of these meetups before you go in case they are moved online.
This week’s Rust job section features a listing for a Pop! OS Software Engineer at System76 and a Software Engineer at Vehicle.Software. Please click on the links in the newsletter for more information.
And that’s all for this week’s extended podcast - make sure to read the newsletter for even more great Rust content.
This Week in Rust is edited by myself, Andre Bogus, and Colton Donnelly. This week and last week’s newsletter contributors include, using their GitHub usernames, nnethercote, patriksvensson, BProg, garrensmith, LukeMathWalker, luojia65, hmble, gterzian, liborty, l4l, nickwilcox, alex-dukhno, lupyuen, nczhu, SneJUgal, and mgrachev! Thank you so much to everyone who contributes to This Week in Rust, you are the reason we can get this newsletter out and I can do this podcast every week!
I will be back next week bringing you more of the wonderful news from the wonderful world of Rust. Until then, please take care.