featherweight musings

Thoughts on Rust and stuff

featherweight musings
  • Home

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

Documentation Quest!

The TiKV Transactions SIG's documentation quest begins today! It is our first community activity. There are tons of bite-size tasks and some more involved work, with the goal of making TiKV's transaction components

Rustconf 2020

Rustconf 2020 happened last week (August 20th). For the first time, it was an online conference. Ironically that made it more difficult for me to attend because of timezones (and I was on

Announcing the Transaction SIG

I've been working on the distributed transaction system in TiKV for about a year now. TiKV is an open-source, distributed and transactional key-value store written in Rust. Recently, I've been helping create a

Building, running, and benchmarking TiKV and TiDB

TiDB is a distributed, MySQL-compatible database. It is built on top of TiKV, a distributed key-value store. Building these projects is easy - clone the Git repos, then run make. Unfortunately running development

Large Transactions in TiDB

In TiDB 4.0, we've extended the transaction system to handle large transactions. Previously, TiDB limited the number of reads and writes in a transaction. In version 4.0 there is a much

Early Impressions of Go from a Rust Programmer

This post was originally published on the PingCAP blog. I've been using Go for the past few weeks. It's my first time using Go for a large (-ish), serious project. I've previously looked

Remote work part 3

This is the third (and last, for now) post in a series on remote work. Previous posts discussed some basics for remote work and communication. In this post I'll talk a bit about

Remote work part 2

In my last post I talked a bit about some general issues with remote work. In this post I am going to focus on communication - probably the most important thing for remote

Remote work part 1

I've been working remotely (in various ways and at various companies) for nearly ten years. I love working remotely, I am happier and more productive. However, it takes some adjustment and it's not

Rust in 2020, one more thing

We need to work on error handling. It's a difficult thing to work on because a lot of people have strong opinions, but I think we should. Rust's error handling story at the

Rust 2020

I was thinking of not writing a blog post this year. I didn't think I'd have much to say. But I thought that I should, I had some nagging feelings that we needed

Migrating a crate from futures 0.1 to 0.3

I recently migrated a small/medium-sized crate from Futures 0.1 to 0.3. It was fairly easy, but there were some tricky bits and some things that were not well documented, so

Rust

Cargo `--offline` ✈️

Rust 1.36 is released on the 4th July and includes a bunch of new stuff. This blog post is about one newly stable feature in Cargo: --offline. Cargo seamlessly uses dependencies whether

Cargo in 2019

I recently published a post detailing a vision for the next few years (hah! Not so recently now, this took a lot longer than expected). Here I'll get into more detail about 2019.

Cargo's next few years

The Cargo team have been thinking about and discussing long-term plans for Cargo. In this post I'll talk about what we hope Cargo will look like around the time of the next edition

I read a paper: 'In search of an understandable consensus algorithm' (the Raft paper)

Raft is an algorithm for distributed consensus. It was introduced in this paper, 'In search of an understandable consensus algorithm' by Ongaro and Ousterhout, in 2014. It is a very readable paper and

featherweight musings © 2025
Latest Posts Twitter Ghost