brson's Rust stuff
I’ve been doing Rust for a while now. Here are some of my most notable Rust works, more-or-less from oldest to newest. Since I rarely contribute directly to Rust lately, this list becomes less indicative of my current interests as time passes.
-
Converted Rust from a statement language to an expression language. That’s right, Rust once was not even expression-oriented.
-
Introduced multithreading to the original (C++-based) green-threading runtime (along with Eric Holk and others), and rewrote the runtime in Rust. Most of this did not survive once green-threading was removed from Rust.
-
Wrote the segmented stack implementation of the green threading runtime.
-
Created the Result type, an alternative to Haskell’s Either (which I also added to Rust, and later removed). Result was also adopted by the Elm language.
-
Wrote the standard testing support along with compiletest, the rustc test driver. Compiletest was the the first “real” parallel Rust program and barely worked.
-
Wrote a lot of documentation, including the crate-level docs for the standard library.
-
Created the original website that survived until about 2018, along with the phrase, “Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety”.
-
Added an easter egg to the runtime that output random Lovecraft quotes during fatal errors. The worthiness of Lovecraft in a systems language was hotly debated. This was mentioned in an ACM Queue article in 2022.
-
Wrote much of the Rust build system, after Graydon Hoare, which is a notoriously brain-searing abuse of make. It does though have an advanced self-documenting help system. That’s my best idea there. It has since been rewritten in Rust, to everybody’s great relief.
-
I designed and implemented Rust’s attributes, including the oft-questioned notion of “inner” and “outer” attributes and doc-comments. Inner doc comments appeared in limited form in Zig as “top-level” doc comments.
-
I wrote the first version of rustdoc and created the original conventions for using Markdown in Rust doc comments. Rustdoc was later rewritten by Corey Richardson.
-
Created the Rust culture of testing documentation by baking the feature into rustdoc from the beginning; further developed with rust-skeptic.
-
I designed Rust’s error codes, though almost all the implementation of error reporting was done by others.
-
Instigated and maintained This Week in Rust, the Rust newsletter, along with Corey Richardson, Vikrant Chaudhary, and Andre Bogus. The success of This Week in Rust has been influential on other open source projects.
-
Started the TWIR Quote of the Week tradition, with its epic forum thread.
-
Created the Rust Forge.
-
Created the Friend of the Tree tradition (after Mozilla’s own) for acknowleding community contributions. It has since died.
-
Created the Unix distribution tooling including rustup.sh, rust-installer and multirust.
-
Created, with Diggory Blake, the unified rustup installer, the current preferred installation method on all supported platforms.
-
Wrote the rustup.rs website that remains live as of 2021, and the the rustup docs, which others improved and converted into a book.
-
Created Servo, the web browser written in Rust, along with Patrick Walton, back when Rust barely worked.
-
Established and supported Rust’s community meetup tradition, with Erick Tryzelaar hosting the infamous San Francisco Bay Area Rust Meetup and supporting many others.
-
Managed the release process since the original 0.1 release in January 2012. Maintained the release notes.
-
I am responsible for demanding Rust switch from an 80 character limit to 100, a subject of much consternation over the years.
-
I both added and removed the ternary operator from Rust.
-
Defined Rust’s characteristic 101 exit code, so that the test runner could distinguish ‘good failure’ from ‘bad failure’.
-
Added the
transmute
function, the legendary waraxe of unsafety. -
Pioneered Rust’s practice of ecosystem-wide regression testing with crater and cargobomb.
-
Created the infamous
weird-exprs
test case. -
Created the widely-used error-chain crate for ergonamic error handling. It has since been deprecated by better crates and practices.
-
Coordinated with Linux distributions to get their Rust packaging in order in time for Rust to be adopted in Firefox.
-
Coordinated the effort to port Rust to WebAssembly.
-
Coordinated a large-scale effort to improve the quality of the Rust crate ecosystem.
-
Coordinated a community effort to create Rust API guidelines.
-
Coordinated a community effort to create a Rust cookbook.