Some thoughts on open collaboration Rust is an open source project. More than just the source code for the compiler being available, that means the project works in the open, inclusive of, and collaborating with, the wider community.
Defer blocks and async drop It seems to be fashionable to drop language design ideas in blog posts at the moment, so I thought I'd join in the fun with a post about defer blocks (don't run off
Clarification/correction of Rust in 2023 I seem to be writing a few of these 'clarification' posts... Anyway, in my last post, I wrote "One partial solution might be to start planning a 2.0 release", I was deliberately
Rust in 2023 The core team used to call for blog posts to help plan the next year. The core team has pretty much disappeared and certainly hasn't called for blog posts, but I'm going to
Follow-up to Foundation post I had a good conversation with Ryan Levick (the core team's representative on the Foundation board) about my last blog post, between that and some more thinking, I'd like to refine and clarify
Rust Foundation in 2023-25 In response to the 'Call for blogs / ideas on Rust Foundation Strategy 2023-25', this post details where I think the Foundation should be headed over the next few years. I think we must
Error docs Error handling in Rust is a bit of an intermediate topic. That is in part because error handling in any language is actually more complicated than it seems, partly because it is a
Mini-post: the role of Rust's teams The Rust project is run by its teams, such as the language team, library team, and community team. The teams are the primary structure for organising work and people in the Rust project,
Ten challenges for Rust Rust is in a pretty good place; it is getting more and more popular, has more and more contributors, and is used in some pretty significant places. However, it is a time of
Complexity In programming and programming language design we often talk about complexity. And for good reason! Complexity often feels like the enemy we are battling when learning a new codebase or new programming language,
Async IO with completion-model IO systems Completion-model IO systems don't work naturally with the Read trait. In this post I want to explore why that is and some alternatives. Many of the issues are related to cancellation, and there
We need to talk about RFCs I think the Rust RFC process needs serious reform. In this blog post, I'll explain why I think that, by covering some of the problems with the current process. Before I get all
Async read and write traits The Read and Write traits are key to IO in Rust and designing the async versions of these traits (and migrating runtimes to use them) is crucial for improving interoperability and portability in
Async IO fundamentals Async programming in Rust is built on top of the operating system's async IO facilities. While it is possible to just use async/await for control flow, mostly people use async for async
Rust in 2022 In previous years, the core team have asked the community to write new years blog posts about Rust in the coming year. They haven't this year, but I wanted to write one anyway.
Ezio I made a small crate for easy-to-use IO in Rust. It is called ezio, and 0.1 is released today. It is a simple crate and it is ready to use now. I
Portable and interoperable async Rust A goal of the async foundations working group is for async Rust to be portable and interoperable. I want to dig in to what that means in this blog post. For a little
What is an async runtime? Unlike other Rust features, you can't just write await in your code and run it. You need to use an async runtime like Tokio or async-std. But why? And what do these runtimes
TiKV Rust Client - 0.1 release We're pleased to announce the 0.1 release of the TiKV Rust client. TiKV is a distributed key-value store. TiKV is powerful, mature, and widely used as part of TiDB (a 'NewSQL' database)
RFC Reading - #2996 - async stream trait RFCs are how changes are made to Rust (language, libraries, core tools, processes and governance, etc.). If you want to keep abreast of changes to Rust or want to deeply understand a feature
dyn Trait and impl Trait in Rust One of the more subtle aspects of Rust is how traits can be used as types. In this blog post I will attempt a bit of a deep dive into how to use
Organise your commits Crafting a beautiful PR is not a high priority for a lot of people, but I think it should be! In this post, I'll expound on what a good, well-organised PR looks like,
SIG-txn reading group, Nov + Dev 2020 The TiKV transactions SIG is starting up its reading group. We'll try to read and discuss a paper each month. If you're interested in research in distributed transactions, come join in! We'll start
Rust in 2021 It's that time of year again - time to think about a roadmap for next year! As I wrote last year, I think a good roadmap should provide focus for the project, but
Leaving the Rust core team I'm stepping down from Rust's core team. It's my last official involvement with Rust, and I'm kinda sad about leaving. Rust is exciting and important, and I love the community and technology. It