ChromaDotNet

ChromaDotNet.Client conformance: Chroma single server and Chroma Cloud

✓ every check passed · ✗ a check failed · — not on a single server: the Chroma docs put it in Chroma Cloud, and the check verified that the client reports the error of the server as documented · on Chroma Cloud, — is what an API key cannot do, with the error the check verified · ¹ a note under the table · a blank cell: the row is not about that column (the quotas of Chroma Cloud on a single server; on Chroma Cloud, the checks with no server or with a local container)

By feature

Chroma docs section Feature Windows · .NET Framework 4.6.2, 4.8 · x64, x86 Windows · .NET Core 3.1, .NET 5, 6, 7 · x64 Windows · .NET 8, 9, 10 · x64, x86 Linux (Debian 11, Debian 12, Ubuntu 24.04) · .NET 6, 8, 9, 10 · x64 Alpine 3.24 (musl) · .NET 8, 10 · x64 Linux (Debian 12, Ubuntu 24.04) · .NET 8, 10 · arm64 NativeAOT, Ubuntu 24.04 · .NET 10 · x64 Chroma Cloud, AWS us-east-1 · .NET 10 · x64
Run Chroma Clients: local server, Chroma Cloud, authentication ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
Tenants and databases ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓¹
Collections Manage collections ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
Add, update, delete data (large writes in batches) ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
Configure: HNSW, SPANN, embedding function ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
Querying collections Query and get: l2, cosine, ip ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
Metadata filtering, array metadata ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
Full-text search and regex ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
Chroma Cloud Collection forking — — — — — — — ✓
Schema: sparse vector search, BM25 — — — — — — — ✓
Search API (basics, filtering, ranking, group by, hybrid, pagination, batch) — — — — — — — ✓
Quotas & Limits: the client keeps to them or reports the error of Chroma ✓
Beyond the Chroma docs OpenTelemetry traces and metrics ✓ ✓³ ✓ ✓ ✓ ✓ ✓ ✓
Cancellation, timeouts, concurrent calls ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
Dependency injection ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓
Testcontainers module ✓ ✓ ✓ ✓ ✓ ✓ ✓
Mocks in tests ✓ ✓ ✓ ✓ ✓ ✓ ✓
BM25 vectors computed by the client ✓ ✓ ✓ ✓ ✓ ✓ ✓
Search and filter requests built by the client ✓ ✓ ✓ ✓ ✓ ✓ ✓

¹ On cloud_aws-us-east-1, “create and get a tenant” is not available: an API key of Chroma Cloud cannot create a tenant: Chroma Cloud answers 403 "Permission denied.", which the client throws as a ChromaException; on cloud_aws-us-east-1, “collections in another tenant and database” is not available: an API key of Chroma Cloud cannot create a tenant for the collections of another tenant: Chroma Cloud answers 403 "Permission denied.", which the client throws as a ChromaException.
³ On win_netcoreapp3.1, win_netcoreapp3.1_ja-JP, “the duration histogram and its buckets, with the OpenTelemetry SDK” is not available: the OpenTelemetry SDK exports no metric on this runtime, also from a meter of its own.

Same answers in every environment

The seeded fuzz of the test bench sends the same random requests from each environment to a fresh Chroma 1.5.9 and compares what comes back, suite by suite, with the answers on win_net10.0: 30 environments, two seeds. ✓ the same answers in every environment of the column, ✗ different somewhere.

Suite Windows · .NET Framework 4.6.2, 4.8 · x64, x86 Windows · .NET Core 3.1, .NET 5, 6, 7 · x64 Windows · .NET 8, 9, 10 · x64, x86 Linux (Debian 11, Debian 12, Ubuntu 24.04) · .NET 6, 8, 9, 10 · x64 Alpine 3.24 (musl) · .NET 8, 10 · x64 Linux (Debian 12, Ubuntu 24.04) · .NET 8, 10 · arm64 NativeAOT, Ubuntu 24.04 · .NET 10 · x64
bm25 ✓ ✓ ✓ ✓ ✓ ✓ ✓
concurrency ✓ ✓ ✓ ✓ ✓ ✓ ✓
documents ✓ ✓ ✓ ✓ ✓ ✓ ✓
edges ✓ ✓ ✓ ✓ ✓ ✓ ✓
embeddings ✓ ✓ ✓ ✓ ✓ ✓ ✓
filters ✓ ✓ ✓ ✓ ✓ ✓ ✓
metadata ✓ ✓ ✓ ✓ ✓ ✓ ✓
names ✓ ✓ ✓ ✓ ✓ ✓ ✓
paging ✓ ✓ ✓ ✓ ✓ ✓ ✓
serialization ✓ ✓ ✓ ✓ ✓ ✓ ✓

Environments

Column Environment System Architecture Runtime Client build Culture Checks
Windows · .NET Framework 4.6.2, 4.8 · x64, x86 win_net462 Microsoft Windows 10.0.26200 X64 .NET Framework 4.8.9345.0 .NETFramework,Version=v4.6.2 en-GB 45 ✓ · 3 —
Windows · .NET Framework 4.6.2, 4.8 · x64, x86 win32_net48 Microsoft Windows 10.0.26200 X86 .NET Framework 4.8.9345.0 .NETFramework,Version=v4.6.2 en-GB 45 ✓ · 3 —
Windows · .NET Framework 4.6.2, 4.8 · x64, x86 win_net48 Microsoft Windows 10.0.26200 X64 .NET Framework 4.8.9345.0 .NETFramework,Version=v4.6.2 en-GB 45 ✓ · 3 —
Windows · .NET Framework 4.6.2, 4.8 · x64, x86 win_net48_de-DE Microsoft Windows 10.0.26200 X64 .NET Framework 4.8.9345.0 .NETFramework,Version=v4.6.2 de-DE 45 ✓ · 3 —
Windows · .NET Framework 4.6.2, 4.8 · x64, x86 win_net48_fa-IR Microsoft Windows 10.0.26200 X64 .NET Framework 4.8.9345.0 .NETFramework,Version=v4.6.2 fa-IR 45 ✓ · 3 —
Windows · .NET Framework 4.6.2, 4.8 · x64, x86 win_net48_tr-TR Microsoft Windows 10.0.26200 X64 .NET Framework 4.8.9345.0 .NETFramework,Version=v4.6.2 tr-TR 45 ✓ · 3 —
Windows · .NET Core 3.1, .NET 5, 6, 7 · x64 win_netcoreapp3.1 Microsoft Windows 10.0.26200 X64 .NET Core 3.1.28 .NETStandard,Version=v2.0 en-GB 44 ✓ · 4 —
Windows · .NET Core 3.1, .NET 5, 6, 7 · x64 win_netcoreapp3.1_ja-JP Microsoft Windows 10.0.26200 X64 .NET Core 3.1.28 .NETStandard,Version=v2.0 ja-JP 44 ✓ · 4 —
Windows · .NET Core 3.1, .NET 5, 6, 7 · x64 win_net5.0 Microsoft Windows 10.0.26200 X64 .NET 5.0.16 .NETStandard,Version=v2.0 en-GB 45 ✓ · 3 —
Windows · .NET Core 3.1, .NET 5, 6, 7 · x64 win_net6.0 Microsoft Windows 10.0.26200 X64 .NET 6.0.6 .NETStandard,Version=v2.0 en-GB 45 ✓ · 3 —
Windows · .NET Core 3.1, .NET 5, 6, 7 · x64 win_net6.0_ar-SA Microsoft Windows 10.0.26200 X64 .NET 6.0.6 .NETStandard,Version=v2.0 ar-SA 45 ✓ · 3 —
Windows · .NET Core 3.1, .NET 5, 6, 7 · x64 win_net7.0 Microsoft Windows 10.0.26200 X64 .NET 7.0.20 .NETStandard,Version=v2.0 en-GB 45 ✓ · 3 —
Windows · .NET 8, 9, 10 · x64, x86 win32_net8.0 Microsoft Windows 10.0.26200 X86 .NET 8.0.30 .NETCoreApp,Version=v8.0 en-GB 45 ✓ · 3 —
Windows · .NET 8, 9, 10 · x64, x86 win_net8.0 Microsoft Windows 10.0.26200 X64 .NET 8.0.31 .NETCoreApp,Version=v8.0 en-GB 45 ✓ · 3 —
Windows · .NET 8, 9, 10 · x64, x86 win_net8.0_de-DE Microsoft Windows 10.0.26200 X64 .NET 8.0.31 .NETCoreApp,Version=v8.0 de-DE 45 ✓ · 3 —
Windows · .NET 8, 9, 10 · x64, x86 win_net9.0 Microsoft Windows 10.0.26200 X64 .NET 9.0.19 .NETCoreApp,Version=v8.0 en-GB 45 ✓ · 3 —
Windows · .NET 8, 9, 10 · x64, x86 win32_net10.0 Microsoft Windows 10.0.26200 X86 .NET 10.0.11 .NETCoreApp,Version=v8.0 en-GB 45 ✓ · 3 —
Windows · .NET 8, 9, 10 · x64, x86 win_net10.0 Microsoft Windows 10.0.26200 X64 .NET 10.0.12 .NETCoreApp,Version=v8.0 en-GB 45 ✓ · 3 —
Windows · .NET 8, 9, 10 · x64, x86 win_net10.0_th-TH Microsoft Windows 10.0.26200 X64 .NET 10.0.12 .NETCoreApp,Version=v8.0 th-TH 45 ✓ · 3 —
Windows · .NET 8, 9, 10 · x64, x86 win_net10.0_tr-TR Microsoft Windows 10.0.26200 X64 .NET 10.0.12 .NETCoreApp,Version=v8.0 tr-TR 45 ✓ · 3 —
Linux (Debian 11, Debian 12, Ubuntu 24.04) · .NET 6, 8, 9, 10 · x64 linux_net6.0 Debian GNU/Linux 11 (bullseye) X64 .NET 6.0.36 .NETStandard,Version=v2.0 invariant 45 ✓ · 3 —
Linux (Debian 11, Debian 12, Ubuntu 24.04) · .NET 6, 8, 9, 10 · x64 linux_net8.0 Debian GNU/Linux 12 (bookworm) X64 .NET 8.0.31 .NETCoreApp,Version=v8.0 invariant 45 ✓ · 3 —
Linux (Debian 11, Debian 12, Ubuntu 24.04) · .NET 6, 8, 9, 10 · x64 linux_net9.0 Debian GNU/Linux 12 (bookworm) X64 .NET 9.0.20 .NETCoreApp,Version=v8.0 invariant 45 ✓ · 3 —
Linux (Debian 11, Debian 12, Ubuntu 24.04) · .NET 6, 8, 9, 10 · x64 linux_net10.0 Ubuntu 24.04.5 LTS X64 .NET 10.0.12 .NETCoreApp,Version=v8.0 invariant 45 ✓ · 3 —
Linux (Debian 11, Debian 12, Ubuntu 24.04) · .NET 6, 8, 9, 10 · x64 linux_net10.0_tr-TR Ubuntu 24.04.5 LTS X64 .NET 10.0.12 .NETCoreApp,Version=v8.0 tr-TR 45 ✓ · 3 —
Alpine 3.24 (musl) · .NET 8, 10 · x64 alpine_net8.0 Alpine Linux v3.24 X64 .NET 8.0.31 .NETCoreApp,Version=v8.0 invariant 45 ✓ · 3 —
Alpine 3.24 (musl) · .NET 8, 10 · x64 alpine_net10.0 Alpine Linux v3.24 X64 .NET 10.0.12 .NETCoreApp,Version=v8.0 invariant 45 ✓ · 3 —
Linux (Debian 12, Ubuntu 24.04) · .NET 8, 10 · arm64 arm64_net8.0 Debian GNU/Linux 12 (bookworm) Arm64 .NET 8.0.31 .NETCoreApp,Version=v8.0 invariant 45 ✓ · 3 —
Linux (Debian 12, Ubuntu 24.04) · .NET 8, 10 · arm64 arm64_net10.0 Ubuntu 24.04.5 LTS Arm64 .NET 10.0.12 .NETCoreApp,Version=v8.0 invariant 45 ✓ · 3 —
NativeAOT, Ubuntu 24.04 · .NET 10 · x64 aot_net10.0 Ubuntu 24.04.5 LTS X64 .NET 10.0.12, NativeAOT .NETCoreApp,Version=v8.0 invariant 45 ✓ · 3 —
Chroma Cloud, AWS us-east-1 · .NET 10 · x64 cloud_aws-us-east-1 Chroma Cloud, AWS us-east-1; the client on Microsoft Windows 10.0.26200 X64 .NET 10.0.12 .NETCoreApp,Version=v8.0 en-GB 58 ✓ · 2 —

Checks

Clients: local server, Chroma Cloud, authentication

Tenants and databases

Manage collections

Add, update, delete data (large writes in batches)

Configure: HNSW, SPANN, embedding function

Query and get: l2, cosine, ip

Metadata filtering, array metadata

Full-text search and regex

Collection forking

Schema: sparse vector search, BM25

Search API (basics, filtering, ranking, group by, hybrid, pagination, batch)

Quotas & Limits: the client keeps to them or reports the error of Chroma

OpenTelemetry traces and metrics

Cancellation, timeouts, concurrent calls

Dependency injection

Testcontainers module

Mocks in tests

BM25 vectors computed by the client

Search and filter requests built by the client