GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - skyzh/vector-db-from-scratch: Learn vector search with Rust and DataFusion; the C++/BusTub track is deprecated.

BranchesTags
Open more actions menu

Latest commit

 

History

100 Commits
100 Commits

Folders and files

NameName
Last commit message
Last commit date
.cargo
.cargo
 
 
.github/workflows
.github/workflows
 
 
bustub-vectordb-solution @ 497b685
bustub-vectordb-solution @ 497b685
 
 
bustub-vectordb-starter @ b979953
bustub-vectordb-starter @ b979953
 
 
course
course
 
 
vector-db-benchmark-support
vector-db-benchmark-support
 
 
vector-db-starter
vector-db-starter
 
 
vector-db
vector-db
 
 
vendor/datafusion-cli
vendor/datafusion-cli
 
 
xtask
xtask
 
 
.gitignore
.gitignore
 
 
.gitmodules
.gitmodules
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 
rust-toolchain.toml
rust-toolchain.toml
 
 

Repository files navigation

Vector Database from Scratch — Build vector search, then use it from SQL

Vector Database from Scratch

Vector Database from Scratch is a hands-on course for systems and database engineers. Build a small in-memory vector database in Rust, compare approximate results with exact search, and use the resulting indexes from SQL through DataFusion.

Read the course

What You Will Build

By the end of the course, your vector database will include:

  • an Arrow-backed in-memory table and a safe DataFusion optimizer rule;
  • IVFFlat, NSW, HNSW, and residual IVF-PQ indexes;
  • SQL commands for creating indexes and comparing query plans; and
  • a shared benchmark for recall, build time, and search latency on SIFT1M.

The course focuses on the boundary where vector-search algorithms become database features. It covers the algorithms, evaluation contracts, query planning, and execution path instead of hiding them behind an HTTP API or ANN library.

Course Structure

The guided Rust course has six days. Each day adds one database or indexing capability, with starter code, focused tests, and a completed reference. The book contains the setup, checkpoint commands, SQL walkthroughs, and benchmark instructions.

You need basic Rust, but you do not need prior knowledge of vector search or DataFusion.

The original C++/BusTub edition remains online for existing readers, but it is deprecated and unmaintained.

Community

Join skyzh's Discord server to study with the Vector Database from Scratch community.

Join skyzh's Discord Server

License

The code in this repository is licensed under the Apache License 2.0. The book, including its Markdown and figures, is licensed under CC BY-NC-SA 4.0.

The bustub-vectordb-starter and bustub-vectordb-solution git submodules retain their own upstream license terms.

About

Learn vector search with Rust and DataFusion; the C++/BusTub track is deprecated.

skyzh.github.io/vector-db-from-scratch/

Topics

apache-arrowapproximate-nearest-neighborcoursedatabase-systemsdatafusionhnswivfflatproduct-quantizationrustsift1msqlsystems-programmingtutorialvector-databasevector-search

Resources

Readme
Apache-2.0 license
Activity

Stars

814 stars

Watchers

8 watching

Forks

33 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.