Chroma is an open-source vector database designed for AI applications, providing efficient storage and retrieval of embeddings with metadata. The system supports both single-node (SQLite) and distributed deployments (Spanner, S3, gRPC microservices) with a multi-language architecture: Python for the client API and embedding function ecosystem, Rust for high-performance data-plane services (frontend, worker, log, compaction, garbage collection), Go for the control-plane sysdb, and TypeScript/JavaScript for web clients. Key features include HNSW, SPANN, and MaxScore sparse indexing; RaBitQ quantization; write-ahead log replication (WAL3); conditional transactions for optimistic concurrency; authentication/authorization (basic, token, RBAC); rate limiting and quota enforcement; OpenTelemetry observability; and a CLI with TUI. The repository also contains an AI agent subsystem (Anthropic integration, trajectory storage) and a foundation API for hosted service capabilities. While the codebase is well-structured with extensive property-based testing and reusable patterns (operator/orchestrator, component system, configurable backends), it suffers from multi-language duplication and ongoing client migration (old vs new JS packages).
This repository provides a PHP library for integrating with the pgvector extension in PostgreSQL, offering support for vector, halfvec, bit, and sparsevec data types. It includes core vector classes (Vector, HalfVector, SparseVector) and integrations for Laravel (Eloquent models, migrations, and a service provider) and Doctrine (DBAL types and DQL functions). The library enables developers to store and query vector embeddings using various distance metrics (L2, inner product, cosine, etc.) in their PHP applications. The architecture is modular, with separate namespaces for core functionality, Laravel, and Doctrine integrations, allowing users to adopt only the parts they need.