Rust
-
ripgrab
A Rust log tailer that applies ripgrep-style regex filters and structured field extraction across multiple files.
-
Builder pattern in Rust with Default
Builder structs for configuration, without a macro crate, when the struct has 20 fields.
-
tokio::select with an explicit cancellation token
CancellationToken over ad-hoc shutdown channels, because it actually composes.
-
Rust: ok_or_else over ok_or, and why
A tiny pattern that avoids allocating error strings on the happy path.
-
A tiny Rust macro for safe env var parsing
A declarative macro that turns std::env::var into a typed, required-or-default lookup.
-
SIMD in Rust without losing my mind
Portable SIMD is real and it's good; a walkthrough of a checksum I vectorized and what surprised me
-
Moving a service from Go to Rust, an honest report
Four months, one service rewrite, the wins were not the ones I expected and the costs were larger than I thought
-
Unsafe code boundaries I drew and regretted
A cautionary tale about wrapping unsafe primitives in safe abstractions, and the time my unsafe was more unsafe than I realized
-
tokio::sync vs std::sync in a real service
When to reach for a blocking std::sync::Mutex in async code and when you must use tokio's version
-
Pin, Unpin, and why async Rust made me read a paper
Self-referential futures, what they imply for memory layout, and why Pin is not as scary as the type signature suggests
-
Trait objects vs generics: when I finally picked a side
After waffling for months, I have a rule for when to use dyn Trait and when to use impl Trait, and it holds up
-
Tokio's block_in_place is a footgun
It solves one problem cleanly and creates two others that don't show up until you're at scale
-
Result and Option ergonomics after six months
Coming from Go, I thought Result felt heavy. Six months in, I've changed my mind, and I know why
-
Cargo workspaces saved our monorepo
We were on the verge of splitting our Rust monorepo into separate git repos when workspace inheritance landed and changed the cost calculation
-
A bad day with Rust lifetimes in Axum middleware
Three hours I'll never get back, but I finally understand why the compiler wanted a static bound and what to do about it