Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

VecturaDB

VecturaDB

OpenSSF Scorecard

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 chromadb afterwards: it removes files that VecturaDB uses.
  • A constraints file does not help: pip cannot exclude chromadb and 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

Apache License 2.0: see LICENSE and NOTICE.

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)

Table of built distributions (wheels) for VecturaDB 1.0.0rc4
File Actions
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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Security 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.

Select from 5 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page