Lightweight vector database for learning vector search from first principles.
- Learn how vectors are stored, scored, and ranked without hidden magic.
- Small, readable codebase designed for tinkering.
- Easy to extend into ANN indexes later.
- Store high-dimensional embedding vectors.
- Brute-force similarity search (cosine, dot product).
- FastAPI HTTP API.
- File-based persistence (
data/vectors.json).
uv sync --dev
uv run uvicorn app.main:app --reloadPOST /vectors
{
"id": "doc-1",
"vector": [0.12, -0.04, 0.33, 0.91, -0.22, 0.05, -0.6, 0.78],
"metadata": { "source": "openai" }
}POST /search
{
"query_vector": [0.12, -0.04, 0.33, 0.91, -0.22, 0.05, -0.6, 0.78],
"top_k": 5,
"metric": "cosine"
}