Vector DB

chroma

The fastest way to get a working embedding store, and the wrong tool once you outgrow a prototype.

29.3k stars Apache 2.0 Rust
4.3 / 5 Editor score

What it is

Chroma is an embedding database aimed at people building AI applications, especially retrieval-augmented generation. In its simplest form it runs inside your Python process with no server at all: create a collection, add documents with their embeddings, query them, and let it persist to a local directory when you ask.

The original version was written in Python and has since had its core rewritten in Rust for speed, with the same approachable API on top. A server mode and a managed cloud offering exist for when a single process is no longer enough.

It is the tool to reach for when the goal is a working prototype in an afternoon. It is not the tool for a large dataset or heavy query load — at that point the more operationally serious engines earn their extra setup cost.

Why we recommend it

The shortest path from idea to working retrieval

A few lines of Python create a persistent, queryable collection. No server to start, no schema to define, no Docker required, which keeps the first hour of a project focused on the actual problem.

It scales from a script to a server later

The same library runs embedded in your process, as a standalone server, or against a hosted service. You can start embedded and move up without rewriting application logic.

Documents and metadata live together

Text, metadata and embeddings go in as one record and metadata filters come back out, so you do not need a second database for the small amount of structured data around your vectors.

Drop-in for the common LLM frameworks

Integrations with LangChain, LlamaIndex and similar stacks are first class, so most chunking-and-retrieval examples from tutorials work with Chroma unchanged.

How it scores

Ease of setup 5.0
Documentation 4.0
Community & support 4.5
Performance 3.5
Maintenance & activity 4.5

These are our editorial ratings, not benchmark results. We score on how the project behaves in practice — how long it takes to get running, how good the documentation is, how responsive the maintainers are, and how well it holds up over time. The licence and star count above are read from GitHub and are a snapshot.

Pros and cons

Strengths

  • Runs embedded in-process with no server, or as a server when you need one
  • Persistent local storage with essentially one line of configuration
  • Very small API surface — collections, add, query, filter
  • First-class integrations with LangChain, LlamaIndex and similar frameworks
  • Apache 2.0, with a Rust core that improved performance over the original Python version

Trade-offs

  • Performance and scale are well below the production-oriented engines in this category
  • Single-node only: no sharding or replication in the open source version
  • The API and documentation have changed repeatedly, so older tutorials and links often no longer match
  • Lacks the advanced index tuning and hybrid keyword search that Milvus or Qdrant offer

How to get it

One-line install

Prefer the terminal? Copy a command and you are done.

Python (pip) pip install chromadb

At a glance

CategoryVector DB
LicenceApache 2.0
Written inRust
GitHub stars29,265
Repositorychroma-core/chroma

Licence and star count were read from the GitHub API when this page was generated and are a snapshot. Check the repository for the current figure and the authoritative licence text.

Other Vector DB tools

We are not affiliated with chroma or its maintainers. We list it because it is genuinely useful and genuinely free. If you plan to build a commercial product on top of it, read the licence on the repository first.

← Back to all tools