Latest Posts (20 found)
fasterthanli.me 2 weeks ago

2025 Recap: so many projects

I’ve been working on so many projects in 2025, I thought it was important for me to make a recap, if only just to clear my head. There are many, many, many things to go through and we don’t have a sponsor today, so I’m gonna start right away with facet! facet is a project that I started working on in March of this year — that’s right, it’s only been ten months, yet it feels like an eternity.

0 views
fasterthanli.me 1 months ago

My gift to the rustdoc team

About two weeks ago I entered a discussion with the docs.rs team about, basically, why we have to look at this: When we could be looking at this: And of course, as always, there are reasons why things are the way they are. In an effort to understand those reasons, I opened a GitHub issue which resulted in a short but productive discussion. I walked away discouraged, and then decided to, reasons be damned, attack this problem from three different angles.

2 views
fasterthanli.me 2 months ago

Engineering a Rust optimization quiz

There are several Rust quizzes online, including one that’s literally called the “Unfair Rust Quiz” at https://this.quiz.is.fckn.gay/ , but when I was given the opportunity to record an episode of the Self-Directed Research podcast live on the main stage of EuroRust 2025 , I thought I’d come up with something special. The unfair rust quiz really deserves its name. It is best passed with a knowledgeable friend by your side.

0 views
fasterthanli.me 4 months ago

crates.io phishing attempt

Earlier this week, an npm supply chain attack . It’s turn for crates.io , the main public repository for Rust crates (packages). The phishing e-mail looks like this: Andrew Gallant on BlueSky And it leads to a GitHub login page that looks like this: Barre on GitHub Several maintainers received it — the issue is being discussed on GitHub . The crates.io team has acknowledged the attack and said they’d see if they can do something about it.

0 views
fasterthanli.me 4 months ago

color npm package compromised

On September 8 2025, around 13:00 UTC, someone compromised Josh Junon’s npm account (qix) and started publishing backdoored versions of his package. Someone noticed and let Josh know: Charlie Eriksen on BlueSky Josh confirmed he’d gotten pwned by a fake 2FA (two-factor authentication) reset e-mail: Josh Junon on BlueSky The phishing e-mail came from (registered 3 days prior) and claimed users had to reset their 2FA:

0 views
fasterthanli.me 4 months ago

The science of loudness

My watch has a “Noise” app: it shows d B , for decibels. Your browser does not support the video tag. My amp has a volume knob, which also shows decibels, although.. negative ones, this time. Your browser does not support the video tag. And finally, my video editing software has a ton of meters — which are all in decibel or decibel-adjacent units. Your browser does not support the video tag. How do all these decibels fit together?

0 views
fasterthanli.me 5 months ago

Summer fasterthanlime update

There are news! Cool Bear's hot tip TL;DR: If you’re a patron or sponsor, check your Profile page to get detailed explainers of every perk. You’ll need to log in. Duh. Here are all the changes I’m implementing, summarized as a table:

0 views
fasterthanli.me 6 months ago

All color is best-effort

I do not come to you with answers today, but rather some observations and a lot of questions. Recently I was editing some video and I noticed this: Not what the finger is pointing at — the dots. Here are the separate layers this image is made up of: the background is a stock image I’ve licensed from Envato Elements: Because I use it as a background image, I’ve cranked down the exposition in the Color tab:

0 views
fasterthanli.me 7 months ago

Introducing facet: Reflection for Rust

I have long been at war against Rust compile times. Part of the solution for me was to buy my way into Apple Silicon dreamland, where builds are, like… faster. I remember every time I SSH into an x86_64 server, even the nice 64-core ones. And another part was, of course, to get dirty with Rust itself. I wrote Why is my Rust build so slow? , which goes in-depth into rust build performance, down to rustc self-profiling even!

0 views
fasterthanli.me 7 months ago

The virtue of unsynn

There have been rumors going around, in the Reddit thread for facet , my take on reflection in Rust, which happened a bit too early, but here we are, cat’s out of the bag, let’s talk about it! Rumors that I, podcaster/youtuber fasterthanlime, want to kill serde , serialization / deserialization framework loved by many and which contributed greatly to Rust’s success, and I just wanted to address those rumors and say that…

0 views
fasterthanli.me 8 months ago

Open sourcing the home CMS

I’ve been bragging about my website software for years! For… whew, it’s been 5 years! I didn't want to make a CMS! I did it out of spite! I’ve been teasing folks about the cool things I did from the beginning — here are all the articles and series I’ve written that mention it: 2020: A new website 2021: Don’t shell out! 2022: Updating fasterthanli.me 2024: Face cams: the missing guide 2024: State of the fasterthanlime

0 views
fasterthanli.me 9 months ago

The promise of Rust

The part that makes Rust scary is the part that makes it unique. And it’s also what I miss in other programming languages — let me explain! Rust syntax starts simple. This function prints a number: And this program calls that function — it looks like any C-family language so far, we got parentheses, we got curly brackets, we got, uhh… …string interpolation isn’t very C-like I guess?

0 views
fasterthanli.me 9 months ago

That health is mental

Disclaimer : Trigger warning: depression, talk of suicide. It’s been a while since I wrote a mental health piece — but I think it’s important to occasionally stop, take a breather, and think about how we feel. deep breath I’m okay, I think? Just a little restless. For those keeping score, I went through major life events in 2023 — a divorce, a move, and the news that I might need a second round of jaw surgery.

0 views
fasterthanli.me 9 months ago

More devops than I bargained for

I recently had a bit of impromptu disaster recovery , and it gave me a hunger for more! More downtime! More kubernetes manifest! More DNS! Ahhhh! The plan was really simple. I love dedicated Hetzner servers with all my heart but they are not very fungible. You have to wait entire minutes for a new dedicated server to be provisioned. Sometimes you pay a setup fee, et cetera. And at some point to server static websites and serve as a K3S server, it’s simply just too big, and approximately twice the price that I should pay.

0 views
fasterthanli.me 9 months ago

Impromptu disaster recovery

im-promp-tu ( ) made, done, or formed on or as if on the spur of the moment: improvised composed or uttered without previous preparation: extemporaneous Merriam-Webster On March 18th, 2025, I thought I would look into self-hosted project management solutions — something kanban-y, but.. better? This one does not spark joy. After discovering that Teamhood was awesome (and EU-based), but had a 3-seat minimum on their subscriptions, I resigned to reluctantly self-host something. made, done, or formed on or as if on the spur of the moment: improvised composed or uttered without previous preparation: extemporaneous

0 views
fasterthanli.me 11 months ago

The case for sans-io

The most popular option to decompress ZIP files from the Rust programming language is a crate simply named zip — At the time of this writing, it has 48 million downloads. It’s fully-featured, supporting various compression methods, encryption, and even supports writing zip files. However, that’s not the crate everyone uses to read ZIP files. Some applications benefit from using asynchronous I/O, especially if they decompress archives that they download from the network.

0 views
fasterthanli.me 1 years ago

Catching up with async Rust

In December 2023, a minor miracle happened: async fn in traits shipped. As of Rust 1.39, we already had free-standing async functions: …and async functions in impl blocks: But we did not have async functions in traits:

0 views
fasterthanli.me 1 years ago

Highlighted code in slides

I have obsessed about this long enough, I think it’s only fair I (and you!) get some content out of it. When I started writing this article, I was working on my P99 CONF slides. Those slides happen to include some bits of code. And because I’m a perfectionist, I would like this code to be syntax highlighted, like this:

0 views
fasterthanli.me 1 years ago

ktls now under the rustls org

I started work on ktls and ktls-sys , a pair of crates exposing Kernel TLS offload to Rust, about two years ago . kTLS lets the kernel (and, in turn, any network interface that supports it) take care of encryption, framing, etc., for the entire duration of a TLS connection… as soon as you have a TLS connection. For the handshake itself (hellos, change cipher, encrypted extensions, certificate verification, etc.), you still have to use a userland TLS implementation.

0 views
fasterthanli.me 1 years ago

State of the fasterthanlime 2024

It’s time for some personal and professional news! TL;DR: I started a podcast with James , I’m stable on antidepressants, I’m giving a P99 CONF about my Rust/io_uring/HTTP work , I’m trying on “they/them” as pronouns, I’m open-sourcing merde_json , rubicon and others, I got a divorce in 2023, I found a new business model. Now that we’re on the same page: let’s unpack this a bit!

0 views