stackpicks.dev
Back to gallery
chroma-core/chroma preview
chroma-core
chroma-core/

chroma

Search infrastructure for AI

Stars
28k
Forks
2.3k
Watchers
28k
Open issues
633
RustApache-2.0 main Updated 30 minutes ago~21 stars/day lifetime
Editor's take

AI-native embedding database designed for rapid prototyping. Easy to run locally, tight LangChain integration. Better for hackathons and internal tools than huge production deployments.

Use this if

You are prototyping RAG, building an internal tool, or bundling a vector DB into a desktop/local app.

Skip if

You expect millions of vectors in production — look at Qdrant, Weaviate, or pgvector.

AI & MLDatabase & ORM
Topics
agentsaiai-agentsdatabaserustrust-lang
Quick install
# Self-hosted — clone + run with Docker (most projects ship a docker-compose.yml)
git clone https://github.com/chroma-core/chroma
cd chroma
docker compose up -d

# Or follow the official deploy guide in the README below.

Inferred from Rust · always double-check against the official README below.

README — rendered from chroma-core/chroma

Chroma Chroma

Chroma - the open-source data infrastructure for AI.

Discord | License | Docs | Homepage

pip install chromadb # python client
# for javascript, npm install chromadb!
# for client-server mode, chroma run --path /chroma_db_path

Chroma Cloud

Our hosted service, Chroma Cloud, powers serverless vector, hybrid, and full-text search. It's extremely fast, cost-effective, scalable and painless. Create a DB and try it out in under 30 seconds with $5 of free credits.

Get started with Chroma Cloud

API

The core API is only 4 functions (run our 💡 Google Colab):

import chromadb
# setup Chroma in-memory, for easy prototyping. Can add persistence easily!
client = chromadb.Client()

# Create collection. get_collection, get_or_create_collection, delete_collection also available!
collection = client.create_collection("all-my-documents")

# Add docs to the collection. Can also update and delete. Row-based API coming soon!
collection.add(
    documents=["This is document1", "This is document2"], # we handle tokenization, embedding, and indexing automatically. You can skip that and add your own embeddings as well
    metadatas=[{"source": "notion"}, {"source": "google-docs"}], # filter on these!
    ids=["doc1", "doc2"], # unique for each doc
)

# Query/search 2 most similar results. You can also .get by id
results = collection.query(
    query_texts=["This is a query document"],
    n_results=2,
    # where={"metadata_field": "is_equal_to_this"}, # optional filter
    # where_document={"$contains":"search_string"}  # optional filter
)

Learn about all features on our Docs

Get involved

Chroma is a rapidly developing project. We welcome PR contributors and ideas for how to improve the project.

Release Cadence We currently release new tagged versions of the pypi and npm packages on Mondays. Hotfixes go out at any time during the week.

License

Apache 2.0

Live data via GitHub REST API · Cached 30 min · Created 05 Oct 2022