Weaviate is a free, open source databases project written in Go and released under a custom open-source licence. It has 16,818 GitHub stars, 1,403 forks and 738 open issues, and was last pushed 4 hours ago. On this registry it ranks #38 of 81 tracked projects in Databases, with 5 head-to-head comparisons available. It gained 17 stars over the last 6 tracked days.

Weaviate — AI-native vector database for intuitive applications

What is Weaviate?

What it is

Weaviate open-source vector database. Stores objects and vectors together. Lives in cloud-native database and AI search ecosystem. Enables semantic search at scale. Combines vector similarity search with keyword filtering, retrieval-augmented generation, and reranking in single query interface.

Problem: applications need objects and vectors stored together so vector search can combine with structured filtering. Weaviate supports approximate nearest neighbor search, HNSW, hybrid search, and information retrieval workflows. Topics include image search, recommender systems, generative search, and neural search.

Key capabilities

  • Stores objects and vectors together, allowing vector search and structured filtering in one database.
  • Combines vector similarity search, keyword filtering, retrieval-augmented generation, and reranking in single query interface.
  • Supports approximate nearest neighbor search and HNSW for semantic, neural, and generative search.
  • Imports vectors automatically with integrated models from OpenAI, Cohere, HuggingFace, and others, or accepts pre-computed vector embeddings.
  • Provides gRPC support and client libraries, including Python client usage in README example.
  • Supports multi-tenancy, replication, and RBAC authorization for production deployments.
  • Supports image search and recommender-system use cases indicated by topics and README.

Who uses it and how

  • Teams building retrieval-augmented generation systems store objects and embeddings, then query objects and vectors together for retrieval-augmented generation.
  • Developers run local Docker instance with Weaviate and model2vec inference service, then use Python client to create Article collection, insert text objects, and perform semantic search.
  • Application teams use Weaviate for semantic search, image search, recommendation engines, chatbots, and content classification.
  • Operators deploy on Docker, Kubernetes, Weaviate Cloud, AWS, or GCP, and enable multi-tenancy, replication, and RBAC for production deployments.

Getting started

README points users to Weaviate Cloud quickstart and local Docker quickstart, with installation options for Docker, Kubernetes, Weaviate Cloud, AWS, and GCP. Local example uses cr.weaviate.io/semitechnologies/weaviate:1.36.0 with cr.weaviate.io/semitechnologies/model2vec-inference:minishlab-potion-base-32M, then installs Python client with pip install -U weaviate-client.

When to use it — and when not to

Use Weaviate when application needs vector database storing objects and vectors together, with hybrid search, RAG, reranking, and cloud-native deployment options. Avoid it if team cannot operate database service, optional embedding inference services, and production controls such as multi-tenancy, replication, and RBAC. Provided metadata lists license NOASSERTION, contributors 0, open issues 738, and repo age 0 years, so self-hosters should review license and maintenance status before production adoption.

project readme (upstream, from github) — read inline

Weaviate Weaviate logo

GitHub Repo stars Go Reference Build Status Go Report Card Coverage Status

Weaviate is an open-source, cloud-native vector database that stores both objects and vectors, enabling semantic search at scale. It combines vector similarity search with keyword filtering, retrieval-augmented generation (RAG), and reranking in a single query interface. Common use cases include RAG systems, semantic and image search, recommendation engines, chatbots, and content classification.

Weaviate supports two approaches to store vectors: automatic vectorization at import using integrated models (OpenAI, Cohere, HuggingFace, and others) or direct import of pre-computed vector embeddings. Production deployments benefit from built-in multi-tenancy, replication, RBAC authorization, and many other features.

To get started quickly, have a look at one of these tutorials:

Installation

Weaviate offers multiple installation and deployment options:

See the installation docs for more deployment options, such as AWS and GCP.

Getting started

You can easily start Weaviate and a local vector embedding model with Docker. Create a docker-compose.yml file:

services:
  weaviate:
    image: cr.weaviate.io/semitechnologies/weaviate:1.36.0
    ports:
      - "8080:8080"
      - "50051:50051"
    environment:
      ENABLE_MODULES: text2vec-model2vec
      MODEL2VEC_INFERENCE_API: http://text2vec-model2vec:8080

  # A lightweight embedding model that will generate vectors from objects during import
  text2vec-model2vec:
    image: cr.weaviate.io/semitechnologies/model2vec-inference:minishlab-potion-base-32M

Start Weaviate and the embedding service with:

docker compose up -d

Install the Python client (or use another client library):

pip install -U weaviate-client

The following Python example shows how easy it is to populate a Weaviate database with data, create vector embeddings and perform semantic search:

import weaviate
from weaviate.classes.config import Configure, DataType, Property

# Connect to Weaviate
client = weaviate.connect_to_local()

# Create a collection
client.collections.create(
    name="Article",
    properties=[Property(name="content", data_type=DataType.TEXT)],
    vector_config=Configure.Vectors.text2vec_model2vec(),  # Use a vectorizer to generate embeddings during import
    # vector_config=Configure.Vectors.self_provided()  # If you want to import your own pre-generated embeddings
)

# Insert objects and generate embeddings
articles = client.collections.get("Article")
articles.data.insert_many(
    [
        {"content": "Vector databases enable semantic search"},
        {"content": "Machine learning models generate embeddings"},
        {"content": "Weaviate supports hybrid search capabilities"},
    ]
)

# Perform semantic search
results = articles.query.near_text(query="Search objects by meaning", limit=1)
print(results.objects[0])

client.close()

This example uses the Model2Vec vectorizer, but you can choose any other embedding model provider or bring your own pre-generated vectors.

Client libraries and APIs

Weaviate provides client libraries for several programming languages:

There are also additional community-maintained libraries.

Weaviate exposes REST API, gRPC API, and GraphQL API to communicate with the database server.

Weaviate features

These features enable you to build AI-powered applications:

  • ⚡ Fast Search Performance: Perform complex semantic searches over billions of vectors in milliseconds. Weaviate's architecture is built in Go for speed and reliability, ensuring your AI applications are highly responsive even under heavy load. See our ANN benchmarks for more info.

  • 🔌 Flexible Vectorization: Seamlessly vectorize data at import time with integrated vectorizers from OpenAI, Cohere, HuggingFace, Google, and more. Or you can import your own vector embeddings.

  • 🔍 Advanced Hybrid & Image Search: Combine the power of semantic search with traditional keyword (BM25) search, image search and advanced filtering to get the best results with a single API call.

  • 🤖 Integrated RAG & Reranking: Go beyond simple retrieval with built-in generative search (RAG) and reranking capabilities. Power sophisticated Q&A systems, chatbots, and summarizers directly from your database without additional tooling.

  • 📈 Production-Ready & Scalable: Weaviate is built for mission-critical applications. Go from rapid prototyping to production at scale with native support for horizontal scaling, multi-tenancy, replication, and fine-grained role-based access control (RBAC).

  • 💰 Cost-Efficient Operations: Radically lower resource consumption and operational costs with built-in vector compression. Vector quantization and multi-vector encoding reduce memory usage with minimal impact on search performance.

  • ⏱️ Object TTL: Automatically expire and remove stale data with configurable time-to-live settings per collection, with full RBAC and multi-tenancy support.

For a complete list of all functionalities, visit the official Weaviate documentation.

Useful resources

AI Agent Skills

Weaviate Agent Skills is a collection of skills for AI coding agents (Claude Code, Cursor, GitHub Copilot, and others) that enable them to work with Weaviate more accurately and efficiently. Skills cover searching, querying, collection management, data import, and full application blueprints (RAG, agentic RAG, chatbots, and more).

Install with:

npx skills add weaviate/agent-skills

Demo projects & recipes

These demos are working applications that highlight some of Weaviate's capabilities. Their source code is available on GitHub.

readme truncated — read the full docs on github

Frequently asked questions

Is Weaviate free to use?

Weaviate is open source. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Weaviate do?

AI-native vector database for intuitive applications

What is Weaviate written in?

Weaviate is primarily written in Go. Its source is publicly available at https://github.com/weaviate/weaviate, and it has 16,818 GitHub stars.