Skip to main content

Crate synaptic_lancedb

Crate synaptic_lancedb 

Source
Expand description

LanceDB embedded vector store integration for Synaptic.

This crate provides LanceDbVectorStore, an implementation of the VectorStore trait backed by LanceDB — a serverless, embedded vector database that requires no separate server process.

§Dependency Note

The lancedb crate (>= 0.20) has transitive dependencies on aws-smithy crates that require Rust >= 1.91. Until those dependencies stabilise at MSRV-compatible versions this crate ships a pure-Rust in-memory backend with the full VectorStore interface so that your application can compile and test today, and you can swap in the real LanceDB backend by replacing LanceDbVectorStore::new with a lancedb-backed constructor when your toolchain supports it.

§Data Layout

LanceDB stores data in the Lance columnar format on the local filesystem (or in cloud object storage such as S3/GCS). The embedded implementation in this crate mirrors that interface: a single table per store keyed by the uri and table_name fields of LanceDbConfig.

§Example

use synaptic_lancedb::{LanceDbConfig, LanceDbVectorStore};

// Local file-based storage
let config = LanceDbConfig::new("/var/lib/myapp/vectors", "documents", 1536);
let store = LanceDbVectorStore::new(config).await?;

// Cloud-backed storage (when using the native lancedb crate)
// let config = LanceDbConfig::new("s3://my-bucket/vectors", "documents", 1536);

Structs§

LanceDbConfig
Configuration for a LanceDB vector store.
LanceDbVectorStore
A VectorStore implementation that mirrors the LanceDB API surface.