Async fn in trait... not

Async fn in trait... not I was planning on showing the in-p... | Continue reading


@fasterthanli.me | 2 years ago

Migrating from warp to axum

Falling out of love with warp Back when I wrote this code... | Continue reading


@fasterthanli.me | 2 years ago

Cleaning up and upgrading third-party crates

The bleeding edge of rustc and clippy Typically, you'd want... | Continue reading


@fasterthanli.me | 2 years ago

Becoming fasterthanlime full-time

As of today, I am no longer employed by fly.io . We're both very sad, and we've promised to stay friends and send postcards toeach other over winter break. (I'm excited, too —... | Continue reading


@fasterthanli.me | 2 years ago

The HTTP crash course nobody asked for

HTTP does a pretty good job staying out of everyone's way. If you're reading this article, there's a solid chance it was delivered to youover HTTP. Even if you're reading this ... | Continue reading


@fasterthanli.me | 2 years ago

How does the detour crate work?

We want to hook a function, so that our code gets called... but we also want the original code to execute. How the heck does that work? 00:00 Where were we 02:08 Disassembling ... | Continue reading


@fasterthanli.me | 2 years ago

This is a video about video

A descent into madness. You wouldn't remux a movie. Or would you? | Continue reading


@fasterthanli.me | 2 years ago

Proc macro support in rust-analyzer for nightly rustc versions

I don't mean to complain. Doing software engineering for a living is a situationof extreme privilege. But there's something to be said about how alienating itcan be at times. ... | Continue reading


@fasterthanli.me | 2 years ago

When Rustc Explodes

One could say I have a bit of an obsession with build times. I believe having a "tight feedback loop" is extremely valuable: when I workon a large codebase, I want ... | Continue reading


@fasterthanli.me | 2 years ago

Remote Development with Rust on Fly.io

Why you might want a remote dev environment Fearmongering a... | Continue reading


@fasterthanli.me | 2 years ago

The Curse of Strong Typing

It happened when I least expected it. Someone, somewhere (above me, presumably) made a decision. "From now on", theydeclared, "all our new stuff must be writte... | Continue reading


@fasterthanli.me | 2 years ago

I won free load testing

Long story short: a couple of my articles got really popular on a bunch ofsites, and someone, somewhere, went "well, let's see how much traffic thatsmart-ass can handle... | Continue reading


@fasterthanli.me | 2 years ago

Lies we tell ourselves to keep using Golang

In the two years since I've posted I want off Mr Golang's WildRide , it's made the rounds time andtime again, on Reddit, on Lobste.rs, on HackerNews, and elsewhere. And every... | Continue reading


@fasterthanli.me | 2 years ago

Getting good at SNES games through DLL injection

Are you ever confronted with a problem and then think to yourself "wait a minute,I know how to code?" — that's exactly what happened there. In this video, we keep dyi... | Continue reading


@fasterthanli.me | 2 years ago

Futures Nostalgia

Up until recently, hyper was my favorite RustHTTP framework. It's low-level, but that gives you a lot of control over whathappens. Here's what a sample hyper application wou... | Continue reading


@fasterthanli.me | 2 years ago

Request Coalescing in Async Rust

As the popular saying goes, there are only two hard problems in computerscience: caching, off-by-one errors, and getting a Rust job that isn'tcryptocurrency-related. Today, we... | Continue reading


@fasterthanli.me | 2 years ago

A rust match made in hell

I often write pieces that showcase how well Rust can work for you, and how itcan let you build powerful abstractions, and prevent you from a bunch ofmistakes. And that makes m... | Continue reading


@fasterthanli.me | 2 years ago

Some mistakes Rust doesn't catch

I still get excited about programming languages. But these days, it's not somuch because of what they let me do, but rather what they don't let me do. Ultimately, what you ca... | Continue reading


@fasterthanli.me | 2 years ago

Computers as a social construct

Those who learn from history are doomed to repeat that fucking proverb. | Continue reading


@fasterthanli.me | 2 years ago

Messing with the recipe

What if we learned just enough to be a little dangerous? | Continue reading


@fasterthanli.me | 2 years ago

Profiling Linkers

In the wake of Why is my Rust build soslow? , developers from the mold and lld linkers reachedout ,wondering why using their linker didn't make a big difference. Of cou... | Continue reading


@fasterthanli.me | 2 years ago

One funny way to bundle assets

There's one thing that bothers me. In part 1, why are we using hyper-staticfile ? Couldn't we just use file:/// URLs? Well, first off: showing off how easy it i... | Continue reading


@fasterthanli.me | 2 years ago

Don’t Shell Out

amos loves to tinker | Continue reading


@fasterthanli.me | 2 years ago

Truly Headless Draw.io Exports

I love diagrams. I love them so much! In fact, I have fairly poor visualizationskills, so making a diagram is extremely helpful to me: I'll have some vagueidea of how differen... | Continue reading


@fasterthanli.me | 2 years ago

Productionizing our poppler build

I was a bit anxious about running our poppler meson build in CI, because it'sthe real test, you know? "Works on my machine" only goes so far, things have atendency t... | Continue reading


@fasterthanli.me | 2 years ago

Porting poppler to meson

It took a hot minute. Try several weeks . Well, yeah. I got to contribute to a bunch of open-source projects in themeantime though, so I'm fairly pleased with it... | Continue reading


@fasterthanli.me | 2 years ago

Building poppler for Windows

I know what you're thinking: haven't we strayed from the whole "contentpipeline" theme in this series? Well... fair. But compiling and distributing software is part o... | Continue reading


@fasterthanli.me | 2 years ago

A static poppler build: the easy way

So! Now our asset processing pipeline is almost complete. But we've justtraded dependencies against CLI tools, for dependencies against dynamiclibraries: Shell session $ ldd... | Continue reading


@fasterthanli.me | 2 years ago

My Ideal Rust Workflow

Writing Rust is pretty neat. But you know what'seven neater? Continuously testing Rust, releasing Rust, and eventually, shippingRust to production. And for that, we want mor... | Continue reading


@fasterthanli.me | 3 years ago

A Terminal Case of Linux

Has this ever happened to you ? You want to look at a JSON file in your terminal, so you pipe it into jq so you can look at it with colors andstuff. ... | Continue reading


@fasterthanli.me | 3 years ago

Understanding Rust futures by going way too deep

So! Rust futures! Easy peasy lemon squeezy. Until it's not. So let's do the easything, and then instead of waiting for the hard thing to sneak up on us , we'llgo for it inten... | Continue reading


@fasterthanli.me | 3 years ago

Making our own executable packer

amos loves to tinker | Continue reading


@fasterthanli.me | 3 years ago

Program in C (Parody song) – fasterthanli.me

Once upon a time, @Cinememer wrote some alternative lyrics to "Under The Sea". I couldn't resist singing them! Download high-quality audio (FLAC) Download ... | Continue reading


@fasterthanli.me | 3 years ago

What’s in the box?

Here's a sentence I find myself saying several times a week: ...or we could just box it. There's two remarkable things about this sentence. The first, is that the advice is ... | Continue reading


@fasterthanli.me | 3 years ago

Pin and Suffering

I'd like to think that my understanding of "async Rust" has increased overthe past year or so. I'm 100% onboard with the basic principle: I would like to handle tho... | Continue reading


@fasterthanli.me | 3 years ago

Recursive Iterators in Rust

I've been looking for this blog post everywhere, but it doesn't exist,so I guess it's my turn to write about Some Fun with Rust. The task at hand Let's say you have a recursive... | Continue reading


@fasterthanli.me | 3 years ago

Aiming for Correctness with Types

The Nature weekly journal ofscience was first published in1869. And after one and a half century, it has finally completed one cycle of carcinization , by publishingan art... | Continue reading


@fasterthanli.me | 3 years ago

Veronica Mars and NTLM password hashes

Intro When I started my Patreon , I had noidea if it would work at all. The whole thing seemed like a gamble: spend aninordinate amount of time writing quality articles, and ... | Continue reading


@fasterthanli.me | 4 years ago

Making Our Own Ping

amos loves to tinker | Continue reading


@fasterthanli.me | 4 years ago

What's in a Linux Executable?

Executables have been fascinating to me ever since I discovered, as a kid,that they were just files. If you renamed a .exe to something else, youcould open it in notepad! An... | Continue reading


@fasterthanli.me | 4 years ago

So you want to live-reload Rust

Good morning! It is still 2020, and the world is literally on fire , so I guess we could all use a distraction. This article continues the tradition of me getting shamelesslyn... | Continue reading


@fasterthanli.me | 4 years ago

Peeking Inside a Rust Enum

During a recent Rust Q&A Session on my twitchchannel , someone asked a question that seemed simple: why are small string types, like SmartString or SmolStr ,the same... | Continue reading


@fasterthanli.me | 4 years ago

A half hour to learn Rust

In order to increase fluency in a programming language, one has to read a lot of it.But how can you read a lot of it if you don't know what it means? In this article, instead o... | Continue reading


@fasterthanli.me | 4 years ago

I Want Off Mr. Golang's Wild Ride

My honeymoon with the Go language is extremely over. This article is going to have a different tone from what I've been postingthe past year - it's a proper rant. And I alw... | Continue reading


@fasterthanli.me | 4 years ago

Declarative Memory Management (2019)

It feels like an eternity since I've started using Rust, and yet I remembervividly what it felt like to bang my head against the borrow checker for thefirst few times. I'm def... | Continue reading


@fasterthanli.me | 4 years ago

I am a Java, C#, C or C++ developer, time to do some Rust

As I've said before, I'm working on a book about lifetimes. Or maybe it'sjust a long series - I haven't decided the specifics yet. Like every one ofmy series/book things, it's... | Continue reading


@fasterthanli.me | 4 years ago

Surviving Rust Async Interfaces

I used to be afraid of async Rust. It's easy to get into trouble ! But thanks to the work done by the whole community, async Rust is gettingeasier to use every week. One proje... | Continue reading


@fasterthanli.me | 4 years ago

Getting in and out of trouble with Rust Futures

I started experimenting with asynchronous Rust code back when futures 0.1 was all we had - before async/await . I was a Rust baby then (I'm at least a toddler now), so I qu... | Continue reading


@fasterthanli.me | 4 years ago