Skip to content
tanvinciblePublic

About

An embedded vector index for local semantic search.

Topics

Resources

Code of conduct

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Latest commit

 

History

163 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Chassis

Chassis is an embedded vector index for local semantic search, written in Rust.

Your index is one file, and Chassis runs inside your process, so there is no server to run and nothing to connect to. You store embeddings under your own ids and search them. The rest of your data stays where it already lives.

pip install chassisdb   # Python 3.11+: import chassisdb
cargo add chassisdb     # Rust: use chassisdb

The C library and its header come with each release.

from chassisdb import VectorIndex

# embeddings: your model's vectors, one row per note; note_ids: the notes' ids
index = VectorIndex("notes.chassis", dimensions=768)
index.add_batch(embeddings, ids=note_ids)
index.flush()

for hit in index.search(query, k=5):
    print(hit.id, hit.distance)

An index opens in about a millisecond, because only its headers are read until a search needs more. At 0.95 recall, Chassis searches a million 128-dimension vectors faster than hnswlib on every server CPU we measured, x86 and ARM.

Capabilities

  • One file, used in-process, with no server
  • Approximate nearest-neighbor search (HNSW) by Euclidean or cosine distance
  • Filtered search, over the ids your application allows
  • Your own ids, and deletes
  • Batch builds on every core
  • Half-precision vectors, for half the file and half the memory
  • Durable flush(): after a crash, everything up to the last one is kept
  • One writer and any number of readers, in other processes too
  • Errors that say what was wrong and what to do instead
  • Rust, C and Python APIs

Chassis is not a database server or a distributed system. It stores vectors and ids, and leaves metadata to you.

Use cases

Chassis fits an app that embeds its own data and searches it on the same machine. That could be a desktop or command-line app, a local RAG or agent memory, or a cache that one process writes while others search it.

Other tools fit other shapes, and you should use them when they do:

  • sqlite-vec, when your data is already in SQLite and search should be part of your SQL queries.
  • LanceDB, when you want one store for vectors and their columns, with filters in the query and versions of the data.
  • A server such as pgvector or Qdrant, when many machines write to one index, or other services query it over the network.

Limits says where Chassis stops fitting: an index much larger than memory, many writers, or heavy churn.

Learn more

Status

Chassis is early and moving fast. The latest release is v0.11.0, and CHANGELOG.md says what changed.

License

Chassis is dual licensed under:

  • Apache License 2.0
  • MIT License

You may use either license at your option.

Contributing

Contributions and design discussion are welcome. See CONTRIBUTING.md.

About

An embedded vector index for local semantic search.

Topics

Resources

Code of conduct

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages