featherweight musings

Thoughts on Rust and stuff

  • Home

Back to work

Hi ho! Hi ho! It's back to work I go! After taking a bit of a break from work, I am officially back into it (I've actually been back into it since July,

New website

Over the last few months I've been putting together a new website. It is now all online at https://www.ncameron.org/. The website is mostly about work - I'm available now for

Eternal Sunshine of the Rustfmt'ed Mind

I will be giving a talk at Rustconf this year about Rustfmt and code formatters. The abstract is: How does Rustfmt work? How could it work better? (Demonstrated by a working prototype). Or

Rust through the ages

How has Rust changed over the years? It's been nine years since 1.0 was released (well, next week, technically). In that time, there have been 78 major releases and two editions, with

Work news!

(This blog post is an edited version of posts on social media, slightly edited and posted here for completeness/further reach). I'm preparing a training course to teach performance engineering to Rust programmers.

Notes on personal productivity

Over the years I've found it pretty important to have a good system for self-organisation. This has evolved over time, with a major influence being the book Getting Things Done by David Allen

Status update

I left Microsoft at the beginning of July (after two years) and also stopped working on Rust at the same time. I intended to finish up some work and hand stuff over etc.

A response to 'A decade of developing a programming language'

I recently read the blog post A decade of developing a programming language by Yorick Peterse (found via Steve Klabnik). I thought it was an interesting blog post which got me thinking, and

Social media update

I've been a bit quiet on social media the past few months (more on what I've been up to in an upcoming post). I would like to write a bit more in the

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

featherweight musings © 2025
Latest Posts Twitter Ghost