- Category
- Developer Tools
- Rank
- No. 346Tools index
- Pricing
- Freemium
- Type
- TOOL
- Builder
- chroma-core
- GitHub
- 29.1k stars
- Latest release
- latest
- Added
- Jul 4, 2026
About
Chroma is an open-source AI-native search and retrieval database designed to be the easiest way to add embeddings-based retrieval to an app, popular as the default vector store in LLM prototypes.
What it does
Chroma stores documents, metadata, identifiers, and either supplied or automatically created embeddings in collections. Applications can retrieve records by identifier, filter metadata or document text, and run similarity queries. It supports in-memory experiments, local disk persistence, server-backed HTTP clients, asynchronous access, and a hosted cloud option.
Why it's ranked here
Chroma makes the first useful retrieval loop unusually compact while leaving room to change deployment modes. The same project exposes local, persistent, HTTP, asynchronous, and cloud clients. Its Rust workspace and broad Python API show substantially more machinery than the tiny introductory example suggests. That breadth is valuable, but it also raises operational and dependency costs.
What's good
The collection model covers adding, updating, upserting, deleting, counting, filtering, and nearest-neighbor retrieval. Chroma can create embeddings automatically or accept application-supplied vectors. Metadata and document filters sit beside similarity search. The Python surface includes sparse vectors, full-text index configuration, hybrid ranking, conditional transactions, authentication hooks, and synchronous and asynchronous server clients.
Tradeoffs
The Python package has a large required dependency set, including model runtime, tokenization, telemetry, Kubernetes, HTTP, validation, and server libraries. Local clients are explicitly intended for development and testing, while production guidance favors a server-backed setup. Non-thin clients also require SQLite 3.35 or newer. The project describes itself as rapidly developing, so adopters should expect continuing interface and operational change.
How to use it well
Use Chroma when a Python or JavaScript application needs document retrieval with embeddings, metadata filters, and a quick path from memory to persisted or server-backed storage. Start locally, supply your own embeddings when model control matters, then move production traffic behind the HTTP service. It does not replace document ingestion, application orchestration, or the embedding model itself when you choose external vectors.
Technical notes+
README.md presents the collection workflow and pip, npm, and CLI entry points. pyproject.toml requires Python 3.9 or newer, registers the chroma command, and builds the Python package with Maturin plus setuptools metadata. Cargo.toml defines a large Rust workspace containing storage, indexing, SQLite, CLI, Python-binding, JavaScript-binding, worker, tracing, and service crates; it also declares Tantivy, HNSW, USearch, Arrow, Parquet, Axum, Tokio, SQLx, and PyO3 dependencies. chromadb/__init__.py exposes ephemeral, persistent, Rust-backed, synchronous HTTP, asynchronous HTTP, and cloud client constructors, while enforcing SQLite 3.35 for non-thin clients. chromadb/cli/cli.py delegates normal command handling to Rust bindings. chromadb/app.py exposes the FastAPI server application. chromadb/auth/__init__.py separates client authentication, server authentication, and authorization providers.
Observed
- License
- Apache 2.0
- Languages
- Rust and Python, with JavaScript bindings included in the Rust workspace
- Package installs
- Python package via pip and JavaScript client via npm
- CLI
- The Python package installs a chroma command; client-server mode supports a persistent path
- Interfaces
- Python library, JavaScript client, CLI, HTTP server clients, asynchronous HTTP client, and cloud client
- Python support
- Python 3.9 or newer; package metadata declares operating-system independence
- Build system
- Python packaging uses Maturin with setuptools metadata and PyO3 extension support
- Repository structure
- A multi-crate Rust workspace covers indexing, storage, SQLite, services, CLI, and language bindings
Read from README.md, Cargo.toml, pyproject.toml, requirements.txt, docs/scripts/README.md, docs/mintlify/AGENTS.md, docs/mintlify/CLAUDE.md, docs/mintlify/README.md, chromadb/app.py, chromadb/__init__.py, chromadb/cli/cli.py, chromadb/db/__init__.py, chromadb/api/__init__.py, chromadb/auth/__init__.py.
Tags
Tech Stack
Comments (0)
No comments yet
Indexed by a proprietary survey. Corrections welcome.
