Milvus is a free, open source databases project written in Go and released under Apache-2.0. It has 46,145 GitHub stars, 4,254 forks and 1,405 open issues, and was last pushed 6 hours ago. On this registry it ranks #7 of 81 tracked projects in Databases, with 5 head-to-head comparisons available. It gained 72 stars over the last 6 tracked days.

Milvus — High-performance vector database for GenAI applications

What is Milvus?

What it is

Milvus is a high-performance, cloud-native vector database written in Go and C++, designed to power AI applications by efficiently storing, indexing, and searching large-scale unstructured data such as text, images, and multi-modal embeddings. It implements hardware-accelerated approximate nearest neighbor (ANN) search using algorithms like HNSW, FAISS, and DiskANN, and supports both real-time streaming updates and batch ingestion. Milvus lives in the GenAI infrastructure ecosystem, serving as the persistent storage and retrieval layer for embedding-based workloads including RAG, recommendation, and image search.

Key capabilities

  • Stores vectors alongside scalar metadata (integers, strings, JSON) for hybrid search with filtering
  • Supports multiple ANN algorithms: HNSW, IVF_FLAT, IVF_SQ8, DiskANN, and GPU-accelerated indexes
  • Fully distributed architecture with compute/storage separation and horizontal scalability
  • Real-time streaming ingestion and low-latency query handling (sub-second on billions of vectors)
  • Kubernetes-native deployment with Helm charts and operator support
  • Standalone and Milvus Lite modes for local development and lightweight use cases
  • Native integration with embedding models via Python SDK (pymilvus) and REST/gRPC APIs

Who uses it and how

  • GenAI developers deploy Milvus to store and retrieve embeddings for RAG pipelines, enabling fast context retrieval from large document corpora
  • E-commerce platforms use it for image and product similarity search by indexing visual embeddings
  • Research teams run Milvus in standalone or Lite mode for rapid prototyping of embedding-based applications before scaling to distributed clusters

Getting started

Install the Python SDK with pip install -U pymilvus, then use MilvusClient to connect to a local Lite instance (MilvusClient("milvus_demo.db")), a self-hosted Milvus (via Docker or Helm), or Zilliz Cloud (serverless/dedicated). Milvus Lite requires no external dependencies and persists to a single SQLite-backed file.

When to use it — and when not to

Milvus replaces proprietary vector databases like Pinecone or Weaviote for teams needing open-source control, scalability, and hardware acceleration. Self-hosting requires managing etcd, MinIO or S3-compatible storage, and a Kubernetes cluster for distributed deployments; standalone mode simplifies this but lacks fault tolerance. It is not ideal for small-scale or non-vector workloads—use SQLite or PostgreSQL for simple key-value or relational needs where ANN is unnecessary.

project readme (upstream, from github) — read inline
milvus banner

license docker-pull-count fully-managed-milvus fully-managed-milvus tutorials slack discord twitter

milvus-io%2Fmilvus | Trendshift

What is Milvus?

🐦 Milvus is a high-performance vector database built for scale. It powers AI applications by efficiently organizing and searching vast amounts of unstructured data, such as text, images, and multi-modal information.

🧑‍💻 Written in Go and C++, Milvus implements hardware acceleration for CPU/GPU to achieve best-in-class vector search performance. Thanks to its fully-distributed and K8s-native architecture, Milvus can scale horizontally, handle tens of thousands of search queries on billions of vectors, and keep data fresh with real-time streaming updates. Milvus also supports Standalone mode for single machine deployment. Milvus Lite is a lightweight version good for quickstart in python with pip install.

Want to use Milvus with zero setup? Try out Zilliz Cloud ☁️ for free. Milvus is available as a fully managed service on Zilliz Cloud, with Serverless, Dedicated and BYOC options available.

For questions about how to use Milvus, join the community on Discord to get help. For reporting problems, file bugs and feature requests in GitHub Issues or ask in Discussions.

The Milvus open-source project is under LF AI & Data Foundation, distributed with Apache 2.0 License, with Zilliz as its major contributor.

Quickstart

$ pip install -U pymilvus

This installs pymilvus, the Python SDK for Milvus. Use MilvusClient to create a client:

from pymilvus import MilvusClient
  • You can also try Milvus Lite for quickstart by installing pymilvus[milvus-lite]. To create a local vector database, simply instantiate a client with a local file name for persisting data:

    client = MilvusClient("milvus_demo.db")
    
  • You can also specify the credentials to connect to your deployed Milvus server or Zilliz Cloud:

    client = MilvusClient(
      uri="",
      token="")
    

With the client, you can create collection:

client.create_collection(
    collection_name="demo_collection",
    dimension=768,  # The vectors we will use in this demo have 768 dimensions
)

Ingest data:

res = client.insert(collection_name="demo_collection", data=data)

Perform vector search:

query_vectors = embedding_fn.encode_queries(["Who is Alan Turing?", "What is AI?"])
res = client.search(
    collection_name="demo_collection",  # target collection
    data=query_vectors,  # a list of one or more query vectors, supports batch
    limit=2,  # how many results to return (topK)
    output_fields=["vector", "text", "subject"],  # what fields to return
)

Why Milvus

Milvus is designed to handle vector search at scale. It stores vectors, which are learned representations of unstructured data, together with other scalar data types such as integers, strings, and JSON objects. Users can conduct efficient vector search with metadata filtering or hybrid search. Here are why developers choose Milvus as the vector database for AI applications:

High Performance at Scale and High Availability

  • Milvus features a distributed architecture that separates compute and storage. Milvus can horizontally scale and adapt to diverse traffic patterns, achieving optimal performance by independently increasing query nodes for read-heavy workload and data node for write-heavy workload. The stateless microservices on K8s allow quick recovery from failure, ensuring high availability. The support for replicas further enhances fault tolerance and throughput by loading data segments on multiple query nodes. See benchmark for performance comparison.

Support for Various Vector Index Types and Hardware Acceleration

  • Milvus separates the system and core vector search engine, allowing it to support all major vector index types that are optimized for different scenarios, including HNSW, IVF, FLAT (brute-force), SCANN, and DiskANN, with quantization-based variations and mmap. Milvus optimizes vector search for advanced features such as metadata filtering and range search. Additionally, Milvus implements hardware acceleration to enhance vector search performance and supports GPU indexing, such as NVIDIA's CAGRA.

Flexible Multi-tenancy and Hot/Cold Storage

  • Milvus supports multi-tenancy through isolation at database, collection, partition, or partition key level. The flexible strategies allow a single cluster to handle hundreds to millions of tenants, also ensures optimized search performance and flexible access control. Milvus enhances cost-effectiveness with hot/cold storage. Frequently accessed hot data can be stored in memory or on SSDs for better performance, while less-accessed cold data is kept on slower, cost-effective storage. This mechanism can significantly reduce costs while maintaining high performance for critical tasks.

Sparse Vector for Full Text Search and Hybrid Search

  • In addition to semantic search through dense vector, Milvus also natively supports full text search with BM25 as well as learned sparse embeddings such as SPLADE and BGE-M3. Users can store sparse vectors and dense vectors in the same collection, and define functions to rerank results from multiple search requests. See examples of Hybrid Search with semantic search + full text search.

Data Security and Fine-grain Access Control

  • Milvus ensures data security by implementing mandatory user authentication, TLS encryption, and Role-Based Access Control (RBAC). User authentication ensures that only auth

readme truncated — read the full docs on github

Frequently asked questions

Is Milvus free to use?

Milvus is open source under the Apache-2.0 licence. 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 Milvus do?

High-performance vector database for GenAI applications

What is Milvus written in?

Milvus is primarily written in Go. Its source is publicly available at https://github.com/milvus-io/milvus, and it has 46,145 GitHub stars.