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 chassisdbThe 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.
- 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.
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.
- Getting started and the Python bindings
- How it works, and the decision records that say why
- Benchmarks and the roadmap
- langchain-chassisdb: a LangChain vector store that passes LangChain's standard tests
- chassisdb-mcp: an MCP server built on Chassis, for long-term agent memory on your machine
- Coding with an agent? In Claude Code, run
/plugin install chassis --marketplace tanvincible/chassis. For Cursor, Codex and the rest, see Chassis for coding agents and llms.txt.
Chassis is early and moving fast. The latest release is v0.11.0, and CHANGELOG.md says what changed.
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.