manishearth.github.io
manishearth.github.io Topics: Rust internals, Servo, Unicode, ICU4X, Clippy Why RustGrep includes it: Clippy origin. Servo and Unicode/ICU4X work. Categories: core
Blog
2026-07-27
~1 min read
manishearth.github.io
This is a post I’ve been meaning to write and publish for years, and only recently got around to doing it. I’m hoping to get back into writing more! For the past few years, as a part of my work on ICU4X, I’ve been working on Diplomat, a mul...
Project/Tooling Updates
2026-06-17
~15 min read
manishearth.github.io
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 pleasant to work with. Part 2 is about making...
Rust Walkthroughs
2022-08-10
~16 min read
manishearth.github.io
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 more types. Part 1 is about making it more...
Rust Walkthroughs
2022-08-10
~14 min read
manishearth.github.io
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 entirely. Part 1 is about making it more pleasa...
Rust Walkthroughs
2022-08-10
~10 min read
manishearth.github.io
I’ve been thinking about garbage collection in Rust for a long time, ever since I started working on Servo’s JS layer. I’ve designed a GC library, worked on GC integration ideas for Rust itself, worked on Servo’s JS GC integration, and help...
Observations/Thoughts
2021-04-07
~27 min read
manishearth.github.io
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 really see them in applications for vari...
Rust Walkthroughs
2021-03-17
~15 min read
manishearth.github.io
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 interop space at the time. I was recently tol...
Observations/Thoughts
2021-02-24
~23 min read
manishearth.github.io
We’ve recently been making lots of progress on future plans for clippy and I thought I’d post an update. For some background, Clippy is the linter for Rust. We have more than 250 lints, and are steadily growing. Clippy and Nightly Sadly, Cl...
News & Blog Posts
2018-06-05
~4 min read
manishearth.github.io
Last week I fell down a rather interesting rabbit hole in Rust, which was basically me discovering a series of quirks of the Rust compiler/language, each one leading to the next when I asked “why?”. It started when someone asked why autogen...
News & Blog Posts
2018-04-17
~6 min read
manishearth.github.io
The Rust community lately has been focusing a lot on “async I/O” through the tokio project. This is pretty great! But for many in the community who haven’t worked with web servers and related things it’s pretty confusing as to what we’re tr...
News & Blog Posts
2018-01-16
~13 min read
manishearth.github.io
Recently Julia Evans wrote an excellent post about debugging a segfault in Rust. (Go read it, it’s good) One thing it mentioned was I think “undefined” and “unsafe” are considered to be synonyms. This is … incorrect. However, we in the Rust...
News & Blog Posts
2017-12-26
~5 min read
manishearth.github.io
Note: This post was written before the Rust 2018 edition, and does not yet incorporate the changes made to the module system. The module and import system in Rust is sadly one of the many confusing things you have to deal with whilst learni...
News & Blog Posts
2017-05-16
~9 min read
manishearth.github.io
A colleague of mine learning Rust had an interesting type / borrow checker error. The solution needs a less-used feature of Rust (which basically exists precisely for this kind of thing), so I thought I’d document it. The code was like this...
News & Blog Posts
2017-04-18
~4 min read
manishearth.github.io
See also: Tony’s post on the same topic You often hear people saying “Language X1 has sum types” or “I wish language X had sum types”2, or “Sum types are cool”. Much like fezzes and bow ties, sum types are indeed cool. These days, I’ve also...
News & Blog Posts
2017-03-07
~9 min read
manishearth.github.io
This may be part of a collaborative blog post series about underhanded Rust code. Or it may not. I invite you to write your own posts about underhanded code to make it so! The submission deadline for the Underhanded Rust competition has bee...
News & Blog Posts
2017-03-07
~5 min read
manishearth.github.io
This may be part of a collaborative blog post series about underhanded Rust code. Or it may not. I invite you to write your own posts about underhanded code to make it so! Last month we opened up The Underhanded Rust competition. This conte...
News & Blog Posts
2017-01-24
~4 min read
manishearth.github.io
Rust is not a simple language. As with any such language, it has many little tidbits of complexity that most folks aren’t aware of. Many of these tidbits are ones which may not practically matter much for everyday Rust programming, but are...
News & Blog Posts
2017-01-17
~7 min read
manishearth.github.io
Rust is not a simple language. As with any such language, it has many little tidbits of complexity that most folks aren’t aware of. Many of these tidbits are ones which may not practically matter much for everyday Rust programming, but are...
News & Blog Posts
2017-01-17
~15 min read
manishearth.github.io
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 common misconception I’ve seen is that code points have cross-language intrinsic mea...
News & Blog Posts
2017-01-17
~12 min read