Rust Search

Find the best content on Rust, curated by the community; a search engine for Rustaceans.
without.boats Topics: Async/await design, Pin, coroutines, ownership, generators Why RustGrep includes it: Where async/await syntax was designed. Categories: core, async
without.boats Blog 2026-07-27 ~1 min read
In July, I described a way to make pinning more ergonomic by integrating it more fully into the language. Last week, I develoepd that idea further with the notion of UnpinCell: a wrapper type that lets a user take an &pin mut UnpinCell<T> a...
without.boats Observations/Thoughts 2024-10-30 ~5 min read
A variation on my previous design for pinned places has occurred to me that would be more consistent with Rust’s existing feature set.The most outlandish aspect of the previous design was the notion of “pinned fields,” which support pinned...
without.boats Observations/Thoughts 2024-10-23 ~2 min read
July 23, 2024In the previous post, I described the goal of Rust’s Pin type and the history of how it came to exist. When we were initially developing this API in 2018, one of our explicit goals was the limit the number of changes we would m...
without.boats Observations/Thoughts 2024-07-24 ~21 min read
July 19, 2024The Pin type (and the concept of pinning in general) is a foundational building block on which the rest of the the Rust async ecosystem stands. Unfortunately, it has also been one of the least accessible and most misunderstood...
without.boats Observations/Thoughts 2024-07-24 ~20 min read
June 22, 2024This post is meant as an explainer about how substructural type theory can be applied in programming language design. Terms like “substructural type theory” tend to scare and confuse programmers who don’t write Haskell on the w...
without.boats Observations/Thoughts 2024-06-26 ~17 min read
May 13, 2024In a high-level language, the programmer is deprived of the dangerous power to update his own program while it is running. Even more valuable, he has the power to split his machine into a number of separate variables, arrays, fi...
without.boats Observations/Thoughts 2024-05-15 ~17 min read
April 20, 2024For the past few months I’ve been mulling over some things that Russell Johnston made me realize about the relationship between effect systems and coroutines. You can read more of his thoughts on this subject here, but he made...
without.boats Observations/Thoughts 2024-04-24 ~10 min read
March 13, 2024This is a brief note about the definition of iterator.In previous posts, I’ve written about a taxonomic confusion I think has arisen within the Rust project about AsyncIterator, in which it was conceived as “the async-modified...
without.boats Observations/Thoughts 2024-03-20 ~4 min read
February 24, 2024One problem with the design of async Rust is what do about async clean-up code. Consider that you have a type representing some object or operation (like an async IO handle) and it runs clean up code when you are done using...
without.boats Observations/Thoughts 2024-02-28 ~21 min read
February 18, 2024In my previous post, I wrote about the distinction between “multi-task” and “intra-task” concurrency in async Rust. I want to open this post by considering a common pattern that users encounter, and how they might implement...
without.boats Observations/Thoughts 2024-02-21 ~20 min read
February 3, 2024In the early-to-mid 2010s, there was a renaissance in languages exploring new ways of doing concurrency. In the midst of this renaissance, one abstraction for achieving concurrent operations that was developed was the “futur...
without.boats Observations/Thoughts 2024-02-07 ~36 min read
December 12, 2023Last week, Tyler Mandry published an interesting post about a problem that the Rust project calls “Barbara battles buffered streams.” Tyler does a good job explaining the issue, but briefly the problem is that the buffering...
without.boats Observations/Thoughts 2023-12-13 ~6 min read
November 30, 2023When we developed the Pin API, our vision was that “ordinary users” - that is, users using the “high-level” registers of Rust, would never have to interact with it. We intended that only users implementing Futures by hand,...
without.boats Observations/Thoughts 2023-12-06 ~7 min read
November 27, 2023In my previous post, I said that the single best thing the Rust project could do for users is stabilize AsyncIterator. I specifically meant the interface that already exists in the standard library, which uses a method call...
without.boats Observations/Thoughts 2023-11-29 ~28 min read
November 7, 2023Four years ago today, the Rust async/await feature was released in version 1.39.0. The announcement post says that “this work has been a long time in development – the key ideas for zero-cost futures, for example, were first...
without.boats Observations/Thoughts 2023-11-08 ~21 min read
October 15, 2023Async/await syntax in Rust was initially released to much fanfare and excitement. To quote Hacker News at the time:This is going to open the flood gates. I am sure lot of people were just waiting for this moment for Rust ado...
without.boats Observations/Thoughts 2023-10-18 ~30 min read
October 6, 2023I want to address a controversy that has gripped the Rust community for the past year or so: the choice by the prominent async “runtimes” to default to multi-threaded executors that perform work-stealing to balance work dynam...
without.boats Observations/Thoughts 2023-10-11 ~7 min read
I want to wrap up my consideration of the idea of adding new auto traits to Rust with some notes from a conversation I had with Ariel Ben-Yehuda.You can read these two previous posts for context:Changing the rules of RustFollow up to “Chang...
without.boats Observations/Thoughts 2023-09-27 ~6 min read
September 18, 2023In my previous post, I described the idea of using an edition mechanism to introduce a new auto trait. I wrote that the compiler would need to create an “unbreakable firewall” to prevent using !Leak types from the new edit...
without.boats Observations/Thoughts 2023-09-20 ~2 min read
"So long, and thanks for all the turbofish."

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.