Open-source project
qdrant/qdrant avatar
qdrant/qdrant

Qdrant: A Rust Vector Database Built for Filtered Search at Scale

Qdrant - High-performance, massive-scale Vector Database and Vector Search Engine for the next generation of AI. Also available in the cloud https://cloud.qdrant.io/

34,578 stars2,674 forksRustApache-2.0

At a glance

What is it?
Qdrant is a Rust-based vector search engine and database that pairs dense, sparse, and multi-vector search with rich payload filtering. It is a solid choice for production workloads that need both similarity matching and precise metadata constraints.
Who is it for?
Adopt Qdrant if you need a self-hosted vector database with strong filtering on payloads, multiple vector types, and a production-ready REST or gRPC API. Avoid it if you require a fully embedded database with no server process, unless you use Qdrant Edge, which still runs in-process but has a smaller footprint.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What Qdrant Actually Solves

Qdrant is a vector similarity search engine and database. It stores points, which are vectors with an additional payload, and lets you search by vector similarity while filtering on that payload. This is the core problem: many applications need to find items that are semantically close to a query, but only within a specific category, tenant, or time range. Qdrant is designed for that combination. It is written in Rust, which the README says makes it fast and reliable under high load. The intended users are teams building neural-network or semantic-based matching, faceted search, and similar applications. It is not a general-purpose database. It is a specialized tool for vector search with filtering, and it does that well.

How Qdrant Works: Vectors, Payloads, and APIs

Qdrant stores points as vectors plus a payload. The payload is structured data attached to each vector, such as color, category, or user ID. When you search, Qdrant compares the query vector against stored vectors using a distance metric, and it can apply payload filters to narrow the candidate set before or during the search. The README highlights dense vectors for semantic similarity, sparse vectors for full-text-like matching, and multi-vector search, which means you can have more than one vector per point. Qdrant exposes two interfaces: a REST API with an OpenAPI 3.0 specification, and a gRPC interface for faster, production-tier searches. The client-server architecture means you run Qdrant as a separate service and connect to it via HTTP or gRPC. This is a key architectural decision: Qdrant is not an embedded library in the main server version, so you must manage a separate process.

Getting Qdrant Running: Docker and Clients

The quickest way to start is with Docker. The README gives this command: docker run -p 6333:6333 qdrant/qdrant. That exposes port 6333, which is the REST API port. The README warns that this starts an insecure deployment without authentication, open to all network interfaces. So you must secure it before production. After starting the server, you connect with a client. The Python example is: from qdrant_client import QdrantClient; client = QdrantClient(url="http://localhost:6333"). Qdrant offers official clients for Go, Rust, JavaScript/TypeScript, Python, .NET/C#, and Java, plus community clients for Kotlin and PHP. There is also Qdrant Edge, a lightweight version that runs inside your application process. With Edge, you initialize an EdgeShard and manage data locally. The README shows creating an EdgeShard with EdgeConfig, specifying a vector name, size, and distance metric like Distance.Cosine. Edge can synchronize with a Qdrant server later, which is useful for offline or low-latency scenarios.

The Filtering Advantage and Its Cost

Qdrant's main differentiator is extended filtering support. Many vector databases treat filtering as an afterthought, applying it after the similarity search. Qdrant is built to handle filters as a first-class part of the query. This is valuable for faceted search and multi-tenant applications where you need to restrict results to a specific user or category. However, filtering has a cost. The more complex your payload filter, the more work Qdrant must do to combine the filter with the vector index. The documentation likely explains how filters interact with HNSW or other index structures, but the README does not give performance numbers. You should test how your filter patterns affect latency. The trade-off is between index speed and filter precision. If you have a high-cardinality filter field, the vector index may not help much, and the search becomes more like a filtered scan. That is a real limitation to plan for.

Limitations and When Qdrant Is the Wrong Tool

Qdrant is not a general-purpose database. It does not replace a relational database or a document store. If your primary need is transactional integrity or complex joins, Qdrant is the wrong tool. Also, the client-server version requires a separate server process, which adds operational overhead. You must handle authentication, networking, and scaling. The README explicitly warns about the insecure default Docker deployment. For a small prototype, that is fine, but for production you need to read the security guide. Another limitation is that the README does not describe the exact behavior of sparse vectors or multi-vector search in detail, so you must consult the full documentation. Finally, Qdrant is written in Rust, which is a strength for performance but a barrier if you need to extend the core engine. You are likely to interact with it through the API, not the source code, unless you are building a custom integration.

Alternatives: How Qdrant Differs from Other Vector Databases

Qdrant competes with other vector databases like Milvus, Weaviate, and Chroma. The key difference is Qdrant's focus on filtering and its Rust implementation. Milvus is also a distributed vector database but uses a different architecture with separate components for storage and query. Weaviate is built in Go and has a strong focus on graph-like relationships and modules for various AI models. Chroma is a lighter-weight, embedded vector database that runs in-process, similar to Qdrant Edge but with a different API and ecosystem. If you need an embedded solution, Qdrant Edge is an option, but Chroma might be simpler for small projects. If you need distributed scaling with multiple nodes, Milvus or Weaviate might be more mature in that area, though Qdrant also supports sharding, as mentioned in the agent skills list. The real difference is the trade-off between operational simplicity and feature depth. Qdrant gives you a robust single-node experience with a clear path to a managed cloud, which is a different approach from a fully distributed system.

Maintenance, Upgrades, and License Considerations

Qdrant is released under the Apache-2.0 license, which is permissive for commercial use. The project is actively maintained, with releases like v1.19.0 in August 2026, v1.18.3 in July 2026, and v1.18.2 in June 2026. That is a steady cadence of roughly monthly releases. The README mentions agent skills that help with decisions like quantization, sharding, and tenant isolation, which suggests the project is investing in operational tooling. However, frequent releases mean you must budget time for upgrades. Check the release notes for breaking changes, especially in the REST API or client libraries. The client libraries are versioned separately, so you need to keep them in sync with the server. The license is permissive, but you should still review the exact terms for your use case. The project also offers a managed cloud service, which can reduce maintenance burden, but you lose some control over the infrastructure.

Editorial conclusion

Adopt Qdrant if you need a self-hosted vector database with strong filtering on payloads, multiple vector types, and a production-ready REST or gRPC API. Avoid it if you require a fully embedded database with no server process, unless you use Qdrant Edge, which still runs in-process but has a smaller footprint. Before committing, verify your exact similarity metric and sharding needs against the current release notes, and test how your payload filter patterns affect query latency. The project is under active development with frequent releases, so check the changelog for breaking changes before upgrading.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes