Rust Search

Find the best content on Rust, curated by the community; a search engine for Rustaceans.
matklad.github.io
Apr 15, 2020 This is a sequel to the previous post about Pratt parsing. Here, we’ll study the relationship between top-down operator precedence (Pratt parsing) and the more famous shunting yard algorithm. Spoiler: they are the same algorith...
News & Blog Posts 2020-05-05 ~18 min read
matklad.github.io
Apr 15, 2020 This is a sequel to the previous post about Pratt parsing. Here, we’ll study the relationship between top-down operator precedence (Pratt parsing) and the more famous shunting yard algorithm. Spoiler: they are the same algorith...
News & Blog Posts 2020-04-21 ~18 min read
matklad.github.io
Apr 13, 2020 Welcome to my article about Pratt parsing — the monad tutorial of syntactic analysis. The number of Pratt parsing articles is so large that there exists a survey post :) The goals of this particular article are: Raising an issu...
News & Blog Posts 2020-04-14 ~22 min read
matklad.github.io
Mar 22, 2020 This post describes a simple technique for writing interners in Rust which I haven’t seen documented before. String interning is a classical optimization when you have to deal with many equal strings. The canonical example woul...
News & Blog Posts 2020-03-24 ~7 min read
matklad.github.io
Feb 14, 2020 ... by me? Rust is my favorite programming language (other languages I enjoy are Kotlin and Python). In this post I want to explain why I, somewhat irrationally, find this language so compelling. The post does not try to explai...
News & Blog Posts 2020-02-18 ~10 min read
matklad.github.io
Jan 4, 2020 (at least on commodity desktop Linux with stock settings) This is a followup to the previous post about spinlocks. The gist of the previous post was that spinlocks have some pretty bad worst-case behaviors, and, for that reason,...
News & Blog Posts 2020-01-07 ~10 min read
matklad.github.io
Jan 2, 2020 Happy new year 🎉! In this post, I will be expressing strong opinions about a topic I have relatively little practical experience with, so feel free to roast and educate me in comments (link at the end of the post) :-) Specifical...
News & Blog Posts 2019-12-31 ~11 min read
matklad.github.io
Jul 25, 2019 This is a short note about yet another way to look at Rust’s unsafe. Today, an interesting bug was found in rustc, which made me aware just how useful unsafe is for making code maintainable. The story begins a couple of months...
News & Blog Posts 2019-07-30 ~3 min read
matklad.github.io
Jul 16, 2019 One of my favorite blog posts about Rust is Things Rust Shipped Without by Graydon Hoare. To me, footguns that don’t exist in a language are usually more important than expressiveness. In this slightly philosophical essay, I wa...
News & Blog Posts 2019-07-23 ~9 min read
matklad.github.io
Jun 18, 2018 This is a post about an interesting testing technique which feels like it should be well known. However, I haven’t seen it mentioned anywhere. I don’t even have a good name for it, I’ve semi-discovered it in the wild. If you kn...
News & Blog Posts 2018-06-19 ~3 min read
matklad.github.io
May 24, 2018 In this post, I’ll talk about a pattern for extracting values from a weakly typed map. This pattern applies to all statically typed languages, and even to dynamically typed ones, but the post is rather Rust-specific. I’ve put t...
News & Blog Posts 2018-05-29 ~3 min read
matklad.github.io
May 4, 2018 This is a post about an annoying Rust pattern and an annoying workaround, without a good solution :) Problem Statement Suppose you have some struct which holds some references inside. Now, you want to store a reference to this s...
News & Blog Posts 2018-05-08 ~7 min read
matklad.github.io
Jan 3, 2018 Introduction One of my favorite features of Cargo is that it is not a general purpose build tool. This allows Cargo to really excel at the task of building Rust code, without usual Turing tarpit of build configuration files. I h...
News & Blog Posts 2018-02-06 ~2 min read
"Rust-based Python type checkers are like buses - you wait ages for one and then two come along at once."

Search tips

Type anything to search across articles, videos (including conference talks), podcasts, research, crates, and Rust API documentation. These operators give you finer control — click an example to try it.

Find pages containing all your words. Pages where the words appear together rank higher.
Quote part of your query to keep those words together as an exact phrase within a larger search.
Wrap the whole query in quotes for a verbatim search that matches text exactly, punctuation and all — perfect for Rust syntax. Needs at least 3 characters.
Put ! first to open the top result immediately. Quote the whole query for a literal leading bang, as in '!Send'. Bangs elsewhere, such as println!, stay literal. Browser and launcher shortcuts can invoke this directly. See search integrations.
Limit results to a single site. Works on its own () too. One site: per search.

Use the tabs and filters above the results to narrow by content type, publication year, and sort order.