Skip to content
Back to the catalog
Project vector-search-engineDatabasesAdvancedComing soon

Build your own vector search engine

Build a vector search engine from scratch. Create a vector index with exact search, filters and a simplified HNSW graph for approximate search.

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.

Guide language

The stage guides read in this language. Only languages this project is fully translated into show up here; the interface language does not change.

What this project is about

Project in preparation: we are completing and verifying the implementation path and its tests. The capabilities below describe the project goal; starting the project is not enabled yet.

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.

Roadmap

5 stages across 3 phases. Every stage comes with its guide and its tests: you move on when they pass.

  1. Phase 12 stages

    Vector foundations

    Define the store, distance metrics, and a trustworthy exhaustive search.

  2. Phase 21 stage

    Query engine

    Add filters, replacements, and deterministic query rules.

  3. Phase 32 stages

    Approximate index

    Build and evaluate a simplified HNSW graph to accelerate retrieval.

Before you start

A local engine that stores vectors and metadata, computes Euclidean and cosine distance, runs exact k-NN, applies filters, and queries a simplified HNSW index with reproducible results.

  • key-value-db
    Coming soon

    Build your own key-value database

    Build a key-value database from scratch. Implement a storage engine with a write-ahead log, indexes and compaction to understand data persistence.

    Advanced14 stages~22 hDatabases
    WALindexescompaction+1

    Go · Rust

  • redis
    Coming soon

    Build your own Redis

    Build a Redis-compatible server from scratch. Implement RESP, an event loop and key expiry, then connect with the official redis-cli.

    Intermediate10 stages~14 hDatabases
    RESPTCPevents+1

    Go · Rust · Python

  • sqlite-reader
    Coming soon

    Build your own SQLite reader

    Build a SQLite reader from scratch. Open a real database file, walk its B-trees and run SELECT queries by decoding the documented binary format.

    Advanced10 stages~15 hDatabases
    binary formatB-treeSQL

    Go · Python · Java