ragleap-vectorstores
Pluggable vector backends beyond ragleap-rag's built-in 6 (PgVector, FAISS, Pinecone, Weaviate, Qdrant, Milvus).
This package is under active development - more backends will be added over time. See the roadmap for status.
Available backends
| Backend | Extra | Notes |
|---|---|---|
| Chroma | chroma |
Embedded/local via chromadb's PersistentClient - no server required. No native sparse/keyword search (supports_sparse() is False); hybrid search falls back to dense-only. |
| LanceDB | lancedb |
Embedded/local via a directory path - no server required. Real upsert semantics via merge_insert(). No native sparse/keyword search enabled yet (supports_sparse() is False); hybrid search falls back to dense-only. |
| Redis | redis |
Requires a real running server - Redis Stack, or plain Redis with the RediSearch module loaded (no embedded/local mode). init_schema() checks for the module and raises a clear error if it's missing. Metadata filtering only supports document_id (RediSearch requires predeclared schema fields). No native sparse/keyword search enabled yet (supports_sparse() is False); hybrid search falls back to dense-only. |
| Upstash Vector | upstash |
Managed serverless REST API - no embedded/local mode at all, and the index (fixed dimension, dense-vs-hybrid type) must already exist, created via the Upstash console; init_schema() verifies compatibility via info() rather than creating anything. Metadata filtering supports arbitrary multi-key filters natively (real SQL-like filter= string over a genuine JSON dict) - more flexible than Redis here. No native sparse/keyword search enabled yet (supports_sparse() is False); hybrid search falls back to dense-only. |
| OpenSearch | opensearch |
Requires a real running OpenSearch instance (no embedded/local mode); uses OpenSearch's native k-NN vector search with the lucene engine (the nmslib engine is rejected on OpenSearch 3.0+). The document registry is a second OpenSearch index. Metadata filtering supports arbitrary term/range filters over any mapped field. No native sparse/keyword search enabled yet (supports_sparse() is False); hybrid search falls back to dense-only. |
Design
Every backend here implements ragleap-rag's VectorBackend interface, so it
can be passed directly to RagLeap(vector_backend=...). Each backend's real
client SDK is an optional extra - installing ragleap-vectorstores alone
pulls in no heavy dependencies beyond ragleap-rag itself.
Install
pip install ragleap-vectorstores[chroma]
# or, with uv
uv add ragleap-vectorstores[chroma]
pip install ragleap-vectorstores[lancedb]
# or, with uv
uv add ragleap-vectorstores[lancedb]
pip install ragleap-vectorstores[opensearch]
# or, with uv
uv add ragleap-vectorstores[opensearch]
Usage
from ragleap_vectorstores import ChromaBackend
backend = ChromaBackend(persist_directory="./chroma_data")
from ragleap_vectorstores import LanceDBBackend
backend = LanceDBBackend(uri="./lancedb_data")
from ragleap_vectorstores import RedisBackend
# Requires a real Redis Stack instance (or plain Redis + the RediSearch
# module) - plain Redis alone has no vector search.
backend = RedisBackend(redis_url="redis://localhost:6379/0")
from ragleap_vectorstores import UpstashBackend
# Requires a real Upstash Vector index, created via the Upstash console
# (console.upstash.com) as a pure DENSE index - no embedded/local mode.
backend = UpstashBackend(url="https://...upstash.io", token="...")
from ragleap_vectorstores import OpenSearchBackend
# Requires a real running OpenSearch instance (e.g. http://localhost:9200) -
# no embedded/local mode. Pass http_auth=("user", "password") and
# use_ssl=True for a secured cluster.
backend = OpenSearchBackend(opensearch_url="http://localhost:9200")
Metadata
Release files for ragleap-vectorstores 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ragleap_vectorstores-0.5.1.tar.gz | 28.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ragleap_vectorstores-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.3 kB
Release files / ragleap_vectorstores-0.5.1.tar.gz
| Download URL | ragleap_vectorstores-0.5.1.tar.gz |
|---|---|
| Size | 28.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a742f0b330b7bf9863f332daf6b3bb458a755490b479a70debf1931c89d96e89
|
|
BLAKE2b-256 checksum How to use checksums |
2b90c865c312d86f417f111d865ff8d833abc62db9c23f68cc1587a09e83e375
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / ragleap_vectorstores-0.5.1-py3-none-any.whl
| Download URL | ragleap_vectorstores-0.5.1-py3-none-any.whl |
|---|---|
| Size | 24.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
97897100799f90b2d084722fcc6ae9bd20e8edbbc995340ee47d3cb3f39e049a
|
|
BLAKE2b-256 checksum How to use checksums |
5e3c33fa6d8318184337e521a9b5f8e87da8040eeafef8f7d4b819b4a01b403d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency log