A key-value database
A storage engine with a WAL, indexes and compaction. Understand how and when your data is persisted.
Go · Rust
Build a vector index with exact search, filters, and a simplified HNSW graph.
Build it in your language
The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.
Vector search retrieves items by mathematical proximity instead of text matching. Here you will build the engine beneath many semantic retrieval systems.
The program receives NDJSON commands, keeps identified vectors, and answers queries with deterministic ordering. You will first establish an exact baseline and then build a measurable approximate index.
5 stages across 3 phases. Every stage comes with its guide and its tests: you move on when they pass.
Define the store, distance metrics, and a trustworthy exhaustive search.
Add filters, replacements, and deterministic query rules.
Build and evaluate a simplified HNSW graph to accelerate retrieval.
A storage engine with a WAL, indexes and compaction. Understand how and when your data is persisted.
Go · Rust
Implement the RESP protocol, an event loop and key expiry. A real server that talks to redis-cli.
Go · Rust · Python
Open a real .db, walk its B-trees and run SELECTs. Reverse engineering of a documented binary format.
Go · Python · Java