finds.dev← search

// the find

qdrant/qdrant-client

★ 1,302 · Python · Apache-2.0 · updated Jun 2026

Python client for Qdrant vector search engine

Official Python client for Qdrant, the vector search engine. Covers the full Qdrant API with both sync and async variants, REST and gRPC transport, and an in-process local mode that runs without a server. Aimed at ML engineers building similarity search or RAG pipelines who want a typed Python interface instead of raw HTTP.

Local in-memory mode uses the same API surface as the remote client, so tests and notebooks don't need a running server. Both sync and async clients are first-class — the async version isn't a thin wrapper bolted on later, it's generated from the same source. Full type stubs and mypy config are included, so IDE completion and static analysis actually work. The congruence test suite runs the same scenarios against local and remote backends, which catches divergence between the two implementations.

The async client is code-generated from the sync version via an AST transformer in tools/ — this works but means any subtle async bug requires understanding the generator, not just the output. The local mode makes no compatibility guarantees for edge cases: filtering logic lives in qdrant_client/local/payload_filters.py, which is a parallel reimplementation of the server's Rust filtering engine and will inevitably drift. FastEmbed is an optional dependency but the README leans on it heavily in examples, which can confuse users who installed the base package and get import errors. gRPC support requires the generated protobuf stubs checked into the repo, so updating the server protocol means regenerating and committing new pb2 files — messy when the server moves fast.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →