Rust Search

Find the best content on Rust, curated by the community; a search engine for Rustaceans.
ralfj.de Topics: Miri, undefined behavior, Stacked/Tree Borrows, pointer provenance, formal verification Why RustGrep includes it: Where Rust's memory model is developed. Miri origin. Categories: core, compiler
www.ralfj.de Blog 2026-07-27 ~1 min read
The Rust Abstract Machine is full of wonderful oddities that do not exist on the actual hardware. Inevitably, every time this is discussed, someone asks: “But, what if I use inline assembly? What happens with provenance and uninitialized me...
www.ralfj.de Observations/Thoughts 2026-03-18 ~22 min read
It is time for another “what is happening in Miri” post. In fact this is way overdue, with the previous update being from more than 3 years ago (what even is time?!?), but it is also increasingly hard to find the time to blog, so… here we a...
www.ralfj.de Project/Tooling Updates 2025-12-24 ~10 min read
One of the more subtle aspects of the Rust language is the fact that there are actually two kinds of expressions: value expressions and place expressions. Most of the time, programmers do not have to think much about that distinction, as Ru...
www.ralfj.de Observations/Thoughts 2024-08-21 ~11 min read
Since last fall, Neven has been doing an internship to develop a new aliasing model for Rust: Tree Borrows. Hang on a second, I hear you say – doesn’t Rust already have an aliasing model? Isn’t there this “Stacked Borrows” that Ralf keeps t...
www.ralfj.de Observations/Thoughts 2023-06-07 ~17 min read
Did you know that the standard library is full of useful checks that users never get to see? There are plenty of debug assertions in the standard library that will do things like check that char::from_u32_unchecked is called on a valid char...
www.ralfj.de Project/Tooling Updates 2022-10-05 ~1 min read
I have been thinking about the semantics of Rust – as in, the intended behavior of Rust programs when executed, in particular those containing unsafe code – a lot. Probably too much. But all of these thoughts are just in my head, which is n...
www.ralfj.de Project/Tooling Updates 2022-08-10 ~4 min read
It has been almost two years since my last Miri status update. A lot has happened in the mean time that I would like to tell you all about! If you are using Miri, you might also be seeing new errors in code that previously worked fine; read...
www.ralfj.de Project/Tooling Updates 2022-07-06 ~16 min read
In my previous blog post on pointer provenance, I have shown that not thinking carefully about pointers can lead to a compiler that is internally inconsistent: programs that are intended to be well-behaved get miscompiled by a sequence of o...
www.ralfj.de Rust Walkthroughs 2022-04-13 ~35 min read
I recently published a blog post on why Undefined Behavior is actually not a bad idea. Coincidentally, this is just a few weeks after the publication of this paper by Victor Yodaiken which basically argues that Undefined Behavior (UB for sh...
www.ralfj.de Observations/Thoughts 2021-12-01 ~7 min read
Some time ago, I wrote a blog post about how there’s more to a pointer than meets the eye. One key point I was trying to make is that just because two pointers point to the same address, does not mean they are equal in the sense that they c...
www.ralfj.de Observations/Thoughts 2020-12-16 ~21 min read
A lot has happened in Miri over the last year and a half, and I figured it would be a good idea to advertise all this progress a bit more widely, so here we go. We also recently performed a breaking change that affects some CI configuration...
www.ralfj.de Project Updates 2020-09-30 ~9 min read
The Rust compiler has a few assumptions that it makes about the behavior of all code. Violations of those assumptions are referred to as Undefined Behavior. Since Rust is a safe-by-default language, programmers usually do not have to worry...
www.ralfj.de News & Blog Posts 2020-07-21 ~5 min read
What exactly happens when you panic!()? I recently spent a lot of time looking at the parts of the standard library concerned with this, and it turns out the answer is quite complicated! I have not been able to find docs explaining the high...
www.ralfj.de News & Blog Posts 2019-11-26 ~11 min read
I have blogged a few times before about Stacked Borrows, my proposed aliasing model for Rust. But I am a researcher, and what researchers (are expected to) do is write papers—so that’s what we did for Stacked Borrows as well. After a lot of...
www.ralfj.de News & Blog Posts 2019-11-19 ~1 min read
Recently, I have significantly updated Stacked Borrows in order to fix some issues with the handling of shared references that were uncovered in the previous version. In this post, I will describe what the new version looks like and how it...
www.ralfj.de News & Blog Posts 2019-04-30 ~24 min read
Running your unsafe code test suite in Miri has just gotten even easier: Miri is now available as a rustup component! Huge thanks to @oli-obk and @mati865 who made this happen. Miri can run your test suite in a very slow, interpreted mode t...
www.ralfj.de News & Blog Posts 2019-03-26 ~1 min read
Last week, I was in Berlin at the Rust All-Hands 2019. It was great! I will miss nerding out in discussions about type theory and having every question answered by just going to the person who’s the expert in that area, and asking them. In...
www.ralfj.de News & Blog Posts 2019-02-12 ~4 min read
Three months ago, I proposed Stacked Borrows as a model for defining what kinds of aliasing are allowed in Rust, and the idea of a validity invariant that has to be maintained by all code at all times. Since then I have been busy implementi...
www.ralfj.de News & Blog Posts 2018-11-20 ~36 min read
When talking about the Rust type system in the context of unsafe code, the discussion often revolves around invariants: Properties that must always hold, because the language generally assumes that they do. In fact, an important part of the...
www.ralfj.de News & Blog Posts 2018-08-28 ~15 min read
"Hello, We are sorry you aren’t happy with the [state](https://corrode.dev/blog/async/) of the `async` in the current edition of Rust. The memory ow..."

Search tips

Type anything to search across articles, videos (including conference talks), podcasts, and research. 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.
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.