

Recent
Hand-Rolling a Recursive Descent Parser for 49× Speedup
·9 mins
pyparsing’s backtracking was the latency ceiling (~3.2k parses/sec). How we identified it, built a hand-written recursive-descent parser with pyparsing as a live parity check, and caught 22 edge cases along the way.
96k Cards, One Copy of Each String: String Interning in the Rust Engine
·7 mins
The Rust card store held 96k printings, each owning its own heap-allocated strings — even though ‘Forest’ appears 130 times with the same set name and ‘Shock’ has the same oracle text across every printing. Replacing each unique string with a u32 ID cut the archived card data from 107 MB to 47 MB and the build-time heap from 205 MB to 145 MB.
Rust-Backed Caching Cut TTL Overhead by 6× with One Import Swap
·5 mins
Swapping cachetools for cachebox (a Rust-backed Python cache) required only a thin key-hashing compatibility wrapper. TTLCache operations went from 537 ns/op to 90 ns/op — a 6× gain for a one-line dependency change.
Color Identity in One Byte: Turning a Seq Scan into Bitwise AND
·7 mins
Why id:gruul was doing a full table scan and how encoding color identity as a 5-bit integer—twice, once in SQL and once in the Rust engine—fixed it with arithmetic that fits in a single CPU instruction.
76× Faster Card Search by Moving Filtering Out of PostgreSQL
·7 mins
Card search moved from PostgreSQL into a Rust extension via PyO3. The 76× speedup came not from clever SQL tuning but from eliminating the database round-trip entirely — and from hitting a ceiling that Python itself could not clear.