Not a Yoking Matter (Zero-Copy #1)

This is part 1 of a three-part series on interesting abstractions for zero-copy deserialization I’ve been working on over the last year. This part is about making zero-copy deserialization more … | Continue reading


@manishearth.github.io | 2 years ago

Zero-Copy All the Things (Zero-Copy #2)

This is part 2 of a three-part series on interesting abstractions for zero-copy deserialization I’ve been working on over the last year. This part is about making zero-copy deserialization work for … | Continue reading


@manishearth.github.io | 2 years ago

So Zero It's Negative?

This is part 3 of a three-part series on interesting abstractions for zero-copy deserialization I’ve been working on over the last year. This part is about eliminating the deserialization step … | Continue reading


@manishearth.github.io | 2 years ago

Let's Stop Ascribing Meaning to Code Points (2017)

Update: This post got a sequel, Breaking our latin-1 assumptions. I’ve seen misconceptions about Unicode crop up regularly in posts discussing it. One very commonmisconception I’ve seen is that code … | Continue reading


@manishearth.github.io | 2 years ago

Breaking our Latin-1 assumptions

So in my previous post I explored a specific (wrong) assumption that programmerstend to make about the nature of code points and text. I was asked multiple times about other assumptions we tend to … | Continue reading


@manishearth.github.io | 2 years ago

A rough proposal for sum types in Go, from a Rust compiler engineer

Sum types are pretty cool. Just like how a struct is basically “This contains one of these and one of these”,a sum type is “This contains one of these or one of these”. So for example, the following … | Continue reading


@manishearth.github.io | 2 years ago

Breaking Our Latin-1 Assumptions

So in my previous post I explored a specific (wrong) assumption that programmerstend to make about the nature of code points and text. I was asked multiple times about other assumptions we tend to … | Continue reading


@manishearth.github.io | 3 years ago

Wrapper Types in Rust: Choosing Your Guarantees

This post is now a part of the official rust book In my previous post I talked a bit about why the RWlock pattern is important foraccessing data, which is why Rust enforces this pattern either at … | Continue reading


@manishearth.github.io | 3 years ago

Arenas in Rust

There’s been some discussion about arenas in Rust recently, and I thought I’d write about them. Arenas aren’t something you would typically reach for in Rust so fewer people know about them; you only … | Continue reading


@manishearth.github.io | 3 years ago

Integrating Rust and C++ in Firefox

This post was originally drafted in August 2018, but I never got around to finishing it. As such, parts of its framing (e.g. the focus on bindgen) are outdated, given the relative infancy of the … | Continue reading


@manishearth.github.io | 3 years ago

Font-Size: An Unexpectedly Complex CSS Property (2017)

font-size is the worst. It’s a CSS property probably everyone who writes CSS has used at some point. It’s pretty ubiquitous. And it’s super complicated. “But it’s just a … | Continue reading


@manishearth.github.io | 4 years ago

The problem with single-threaded shared mutability

Edit (Jan 2017): I re-discovered Niko’s post which touches on this and reaches for the same realization. I suspect I subconsciously got the idea for this from that post, at least in part. This … | Continue reading


@manishearth.github.io | 4 years ago

Reflections on Rusting Trust

The Rust compiler is written in Rust. This is overall a pretty common practice in compilerdevelopment. This usually means that the process of building the compiler involves downloading a(typically … | Continue reading


@manishearth.github.io | 4 years ago

What Are Tokio and Async IO All About

The Rust community lately has been focusing a lot on “async I/O” through the tokioproject. This is pretty great! But for many in the community who haven’t worked with web servers … | Continue reading


@manishearth.github.io | 5 years ago

Down a Rusty Rabbit Hole

Last week I fell down a rather interesting rabbit hole in Rust, which was basicallyme discovering a series of quirks of the Rust compiler/language, each one leading to thenext when I asked “ … | Continue reading


@manishearth.github.io | 6 years ago

The Future of Clippy (the Rust Linter)

We’ve recently been making lots of progress on future plans for clippy and Ithought I’d post an update. For some background, Clippy is the linter for Rust. We have more than 250 lints, … | Continue reading


@manishearth.github.io | 6 years ago