Skip to content

anatta-rs/vector-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vector-store

Implementations of polystore::VectorStore for multiple backends, plus an optional HTTP server bin.

Philosophy

  • Lib-first: VectorStore trait impls for multiple backends, each gated by a feature flag. Embed directly into your application.
  • Bin-optional: an HTTP server (vector-server bin) for distributed access. Only compiled when a backend feature is enabled.
  • Backends as features: pick one or many; runtime CLI flag selects which backend the bin uses.

Backends

Feature Crate dep Status
qdrant-backend (default) reqwest (HTTP API) placeholder
memory-backend placeholder

Use as a library

use vector_store::{VectorStore, QdrantStore};

let store = QdrantStore::connect("http://localhost:6333", "my-collection")?;

store.upsert("id-1", &[0.1, 0.2, 0.3], serde_json::json!({"kind": "doc"})).await?;

let hits = store.search(&[0.1, 0.2, 0.3], 10).await?;

Disable defaults to ship without Qdrant :

[dependencies]
vector-store = { git = "https://github.com/anatta-rs/vector-store", default-features = false, features = ["memory-backend"] }

Use as a binary (HTTP server)

cargo install --git https://github.com/anatta-rs/vector-store --features qdrant-backend
QDRANT_URL=http://localhost:6333 QDRANT_COLLECTION=anatta vector-server

CLI flags pick the backend at runtime when multiple are compiled in.

HTTP API

GET    /health                → 200 OK
POST   /upsert                → upsert vector {id, vector, payload}
GET    /vector/{id}           → 200 + JSON {vector, payload} | 404
DELETE /vector/{id}           → 204
POST   /search                → 200 + JSON top-K hits {query, k, filter?}
POST   /batch/upsert          → 201 (body = list of {id, vector, payload})

Roadmap

🟡 qdrant-backend (HTTP impl)
🟡 memory-backend (in-memory impl)
🟡 HTTP server bin
🟡 hannoy-backend (pure-Rust ANN)

License

MIT.

About

Implementations of polystore::VectorStore for multiple backends (Qdrant, HNSW, in-memory) — plus an optional HTTP server bin (vector-server)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages