Weaviate
Open-source vector database with built-in vectorization, hybrid search, and in-database RAG.
About
Weaviate is an open-source vector database (Go) that stores objects alongside their vectors, so semantic search, keyword (BM25) search, and generative retrieval can live in one system. Its client modules can vectorize text automatically at import time using providers like OpenAI, Cohere, or Hugging Face, removing the need for a separate embedding pipeline.
It supports multi-tenancy, horizontal sharding, metadata filtering, and a GraphQL/REST API, with managed Weaviate Cloud as an alternative to self-hosting. The core database is BSD-3-Clause; enterprise-only code in the repo's wl/ directory is proprietary.
What it can do
- • Vector + BM25F hybrid search in a single query, with tunable alpha fusion
- • Built-in vectorization modules (OpenAI, Cohere, Hugging Face, Weaviate Embeddings) at import time
- • Generative search: in-database RAG via provider integrations (e.g. Anthropic, OpenAI)
- • Multi-tenancy with per-tenant shards, plus horizontal sharding and replication
- • GraphQL and REST APIs with official Python, TypeScript, Go, and Java clients
- • Metadata filtering with an AllowList that constrains vector, keyword, and hybrid execution
- • Backup/restore, RBAC, and API-key/OIDC auth for production deployments
- • Query Agent service for natural-language querying (Weaviate Cloud)
Setup
- Install Docker and start Weaviate locally with the official compose setup:
docker compose up -d - Install the v4 Python client:
pip install -U "weaviate-client" - Connect:
import weaviatethenclient = weaviate.connect_to_local()(passheaders={"X-OpenAI-Api-Key": key}if you use OpenAI vectorization) - Create a collection with automatic vectorization:
client.collections.create(name="Article", vector_config=Configure.Vectors.text2vec_openai()) - Insert objects with
collection.data.insert({...}), then search withcollection.query.near_text(query="...", limit=5)or run in-database RAG withcollection.generate.near_text(...)
Prerequisites
Docker 20.10+; ~2 CPU / 4 GB RAM minimum for local dev; Python 3.9+ for the client; an API key from an embedding/LLM provider if you use Weaviate's built-in vectorization or generative search (bring-your-own-vectors mode needs none).
Use cases
Works with
Trust score — 9/10
Scored 9/10 (verified tier, metrics-v1). Evidence: 16,876 GitHub stars (log-scaled vs catalog peers); blended with ~9,835,248 monthly package downloads; last push 0d ago; 100 releases/12mo; 804 open issues. Manual review: telemetry on by default (opt-out verified); cloud-only Query Agent; perf claims third-party. License: BSD-3-Clause.
★ 16,876 GitHub stars
How the trust score is built
Full methodology →- Adoption · stars/downloads, log-scaled vs peers
- 8.6/10
- Maintenance · recency, releases, issue load
- 8.2/10
- Openness · license + docs
- 10.0/10
- Manual review · sanity read + red-flag check
- 9.0/10
- · 16,876 GitHub stars (log-scaled vs catalog peers)
- · blended with ~9,835,248 monthly package downloads
- · last push 0d ago; 100 releases/12mo; 804 open issues
- · manual review: telemetry on by default (opt-out verified); cloud-only Query Agent; perf claims third-party
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.