Chassis is an embedded vector index for local semantic search, written in Rust.
Your index is one file, and Chassis runs inside your process: no server to run, nothing to connect to. Store embeddings under your own ids, search them, and keep the rest of your data where it already lives.
from chassis import VectorIndex
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: only its headers are read until a search needs more. At the same recall, it searches a million 128-dimension vectors faster than hnswlib on every server CPU measured, x86 and ARM.
- 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
It is not a database server or a distributed system, and it stores vectors and ids, not metadata.
- Getting started, and the Python bindings
- How it works, and why, in the decision records
- Benchmarks, and what is planned
Early, and moving fast. The latest release is v0.7.2. See CHANGELOG.md.
Chassis is dual licensed under:
- Apache License 2.0
- MIT License
You may use either license at your option.
Contributions and design discussion are welcome. See CONTRIBUTING.md.