This release is a pre-release and may not be stable for production use.
VecturaDB
VecturaDB is an independent fork of Chroma, under the Apache License 2.0. The original code is copyright Chroma Inc. and its contributors. Independent project. Not affiliated with, endorsed by or sponsored by Chroma Inc. CHROMA is a registered trademark of Chroma Inc., used here only to describe compatibility. We use the name "Chroma" only to say which software our projects work with. It does not mean that Chroma Inc. made, approved or supports them.
VecturaDB is an open-source vector database, compatible with the Chroma API. This repository keeps the full git history of Chroma and its Apache 2.0 license.
Why VecturaDB
Chroma Cloud is winding down: it stops accepting writes on 22 November 2026 and stops serving reads on 22 December 2026. Some features of Chroma exist only in Chroma Cloud and in its distributed version: sparse vectors, the BM25 index and hybrid search. VecturaDB brings them to the single-node database, the one that runs with Docker, as a server, or inside a Python application, so that they stay available to everyone, as open source.
Sparse vectors, BM25, the Search API, hybrid search included, and collection fork work on the single node.
The releases are previews, 1.0.0-preview.N, until VecturaDB has been proven in use; then comes 1.0.0.
Python
pip uninstall -y chromadb
pip install VecturaDB
The VecturaDB package keeps the import name chromadb, so existing code runs as it is.
import chromadb
client = chromadb.HttpClient(host="localhost", port=8000)
While only previews exist, pip install VecturaDB installs the newest preview. Once 1.0.0 is out, a preview needs pip install --pre VecturaDB.
Packages that depend on chromadb
VecturaDB and chromadb install the same modules, so they cannot be installed side by side. Packages that declare a dependency on chromadb, such as langchain-chroma, make pip install chromadb too, and its files replace those of VecturaDB. Install those packages first and VecturaDB last:
pip install langchain-chroma
pip install --force-reinstall --no-deps VecturaDB
- Run the last line again after any command that installs or upgrades
chromadb. - Do not uninstall
chromadbafterwards: it removes files that VecturaDB uses. - A constraints file does not help: pip cannot exclude
chromadband still install a package that requires it.
Docker
docker run -p 127.0.0.1:8000:8000 -v ./data:/data ghcr.io/vecturadb/vecturadb:preview
Images for amd64 and arm64. preview is the newest preview; every release also has a tag with its version. The data lives in /data. -p 127.0.0.1:8000:8000 publishes the port on this machine only.
CLI
Linux (x86_64 and arm64) and macOS (x64 and arm64):
curl -sSL https://raw.githubusercontent.com/VecturaDB/VecturaDB/main/rust/cli/install/install.sh | bash
chroma run --path ./data
Windows (x64), in PowerShell:
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/VecturaDB/VecturaDB/main/rust/cli/install/install.ps1'))
The scripts install the newest release, previews included. Every binary is also in the releases. The binary keeps the name chroma.
Moving data out of Chroma Cloud
The CLI copies collections from Chroma Cloud into a running VecturaDB:
chroma login --api-key <your Chroma Cloud API key>
chroma copy --from-cloud --to-local --host http://localhost:8000 --db <database> --all
To copy only some collections, use --collections <name> once per collection instead of --all. The collections must not exist yet in VecturaDB.
The copy stops at the first collection it cannot create. The collections copied before it stay in VecturaDB: copy the rest with --collections. Collections whose metadata holds the legacy hnsw:* settings fail with Cannot set both collection config and schema simultaneously; Chroma gives the same error.
What arrives: every record with its document, metadata, embedding and URI, the metadata of the collection, and its schema, sparse and BM25 indexes included. Sparse and BM25 searches give the same scores as on Chroma Cloud. The settings of the dense index do not arrive: Chroma Cloud uses SPANN, VecturaDB uses HNSW with its default settings.
SPANN index
Chroma Cloud indexes the dense vectors of a collection with SPANN, single-node Chroma with HNSW. VecturaDB can give a collection a SPANN index on the single node too, behind the server option spann, off by default.
With a configuration file:
persist_path: "./data"
executor:
local:
spann: true
vecturadb run config.yaml
With Docker, the image reads its configuration file, and an environment variable sets the option:
docker run -p 127.0.0.1:8000:8000 -v ./data:/data -e CHROMA_EXECUTOR__LOCAL__SPANN=true ghcr.io/vecturadb/vecturadb:preview
run --path reads no option, and the Python package has no SPANN in process.
- With the option on, a collection created with a SPANN configuration or schema gets a SPANN index; any other collection gets HNSW, as before.
- With the option off, a SPANN request gets HNSW, as on single-node Chroma. A SPANN collection created before still answers reads; a write to it fails with
SPANN collections need the executor option spann. - A read of a SPANN collection that fails with an error that distributed Chroma retries reads again: at once after a NotFound, otherwise after the backoff of
executor: local: retry(factor,min_delay_ms,max_delay_ms,max_attempts,jitter), by default that of distributed Chroma: 2.0, 100 ms, 5000 ms, 5 times, with jitter. - Chroma 1.5.9 and VecturaDB 1.0.0-preview.3.post1 open a data path with SPANN collections and serve the other collections as before. A SPANN collection answers there with an error, 500: do not write to it with them. Deleting it there works; VecturaDB removes its files at the next startup.
Clients
A client that needs to know which server it talks to reads GET /api/v2/pre-flight-checks. VecturaDB answers with the fields of Chroma and adds a server block, for example:
{"max_batch_size": 5461, "supports_base64_encoding": true, "server": {"name": "VecturaDB", "version": "1.0.0-preview.N", "features": ["sparse_vector_index", "bm25", "search", "fork", "api_keys"]}}
features lists what VecturaDB has beyond single-node Chroma:
sparse_vector_index: sparse vector indexes in the schema of a collection;bm25: sparse indexes with BM25 scoring;search: the Search API, hybrid search included;fork: collection fork and fork count;api_keys: API keys, as on Chroma Cloud.
With API keys, only a request with a valid key gets the block. Chroma does not send the block, and the clients of Chroma ignore it. GET /api/v2/version answers 1.0.0, as Chroma does.
Telemetry
Telemetry is off by default. Setting ANONYMIZED_TELEMETRY=TRUE turns on the anonymized telemetry inherited from Chroma (PostHog, Python package only). The server binary sends none.
License
Metadata
Release files for VecturaDB 1.0.0rc4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| vecturadb-1.0.0rc4-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details for vecturadb-1.0.0rc4-cp39-abi3-win_amd64.whl |
| vecturadb-1.0.0rc4-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ x86-64 | Details for vecturadb-1.0.0rc4-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
| vecturadb-1.0.0rc4-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ ARM64 | Details for vecturadb-1.0.0rc4-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl |
| vecturadb-1.0.0rc4-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details for vecturadb-1.0.0rc4-cp39-abi3-macosx_11_0_arm64.whl |
| vecturadb-1.0.0rc4-cp39-abi3-macosx_10_12_x86_64.whl | CPython 3.9 | abi3 | macOS 10.12+ x86-64 | Details for vecturadb-1.0.0rc4-cp39-abi3-macosx_10_12_x86_64.whl |
Total release size: 160.5 MB
Release files / vecturadb-1.0.0rc4-cp39-abi3-win_amd64.whl
| Download URL | vecturadb-1.0.0rc4-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 33.7 MB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
2b809db4708e3d330dc9fa090577104a454dad837b0fa4248dd0463f4269460e
|
|
BLAKE2b-256 checksum How to use checksums |
8cf61ef15f5412d60c7ee13d98a47a891ece69629b43fc7a7b40243efeec1d86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / vecturadb-1.0.0rc4-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | vecturadb-1.0.0rc4-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 32.8 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
c6e3aaa0fdb91bee30328ae0f16f114abae330eec58e77d4010bd44dad80c266
|
|
BLAKE2b-256 checksum How to use checksums |
29812f8896ba6d06e20bc3002cdda8cb6773b8c0b2e78bf1ef545c48dc8ce1b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / vecturadb-1.0.0rc4-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
| Download URL | vecturadb-1.0.0rc4-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl |
|---|---|
| Size | 31.8 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
f96fe02af020a4a849e62df88cce9d25ab7cc9e65e98dfe23693c8c6c7ea6531
|
|
BLAKE2b-256 checksum How to use checksums |
277474ae3734f154351e94f0c2468711c7a25356277bc551366242c090e5159b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / vecturadb-1.0.0rc4-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | vecturadb-1.0.0rc4-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 30.4 MB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
0b002f4644bf703796156f25906d5fb18102da6662faf61ddb6e0548a93f27b3
|
|
BLAKE2b-256 checksum How to use checksums |
9717fee1bc1027306e76da8ada5a166715945b736609b9c46ec91bf591583715
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logRelease files / vecturadb-1.0.0rc4-cp39-abi3-macosx_10_12_x86_64.whl
| Download URL | vecturadb-1.0.0rc4-cp39-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 31.8 MB |
| Tags | CPython 3.9 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
2aa1115f005e8518bac02f7da716cb3e55f516fd557d4b916e0342f2b22cb461
|
|
BLAKE2b-256 checksum How to use checksums |
f86c481c9dfa3be737da45d1b0a98a38c78692c30d3bb2e74780789b87177295
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 29, 2026.
Transparency logSecurity for VecturaDB 1.0.0rc4
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.
Full provenance
All 5 files in this release have been uploaded with provenance metadata.
Attestation for vecturadb-1.0.0rc4-cp39-abi3-win_amd64.whl
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 Oct 29, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.