A thread pool
Queues, mutexes and condvars. Spread work across threads without data races, and measure it properly.
Rust · C++ · Go
Project catalog
Every project is a real tool split into stages. Explore the catalog or tell us what you need for a personal shortlist.
22 projects
Queues, mutexes and condvars. Spread work across threads without data races, and measure it properly.
Rust · C++ · Go
Open a real .db, walk its B-trees and run SELECTs. Reverse engineering of a documented binary format.
Go · Python · Java
Tokenizer, parser, evaluator and closures. Discover how a language runs your code, step by step.
Python · JavaScript · TypeScript
Blobs, trees and commits. Discover that Git is a content-addressed object store, and little else.
Go · Python · Rust
Build a vector index with exact search, filters, and a simplified HNSW graph.
TypeScript · Python · Go
Bencode, trackers and the peer-to-peer protocol. Download a real file by talking to real peers.
Go · Python · Java
A storage engine with a WAL, indexes and compaction. Understand how and when your data is persisted.
Go · Rust
namespaces, cgroups and chroot. Isolate a process by hand and understand what Docker does when it starts an image.
Go · C · Rust
Mark-and-sweep from scratch. Manage memory the way the runtimes you use daily do without you noticing.
C · C++ · Rust
From source code to runnable bytecode. Lexing, AST, semantic analysis, code generation and a VM that runs it.
Rust · C++ · TypeScript