Dev Tools

Qdrant Hit 1.0 And It's Production Ready

All articles
🦀📐

Rust-fast, horizontally scaled, and finally calling itself stable

If you've been waiting for Qdrant to drop the "we're still pre-1.0" disclaimer before committing infra to it — behold: 1.0 just shipped. Horizontal scaling, distributed mode, and an API contract that promises not to move under you.

The Setup

Qdrant is written in Rust, which means it's stupid fast and uses memory like a polite houseguest. Docker run, point a client at it, you're indexing in under a minute. M4 Macs love this thing.

# spin up Qdrant locally
docker run -p 6333:6333 -p 6334:6334 \
  -v $(pwd)/qdrant_storage:/qdrant/storage \
  qdrant/qdrant:latest

# health check
curl http://localhost:6333/healthz

The Money Pattern

The Python client is genuinely pleasant. Named vectors, payload filtering, hybrid search, sparse vectors — it all just works. Here's a full upsert-and-search loop in under 30 lines.

from qdrant_client import QdrantClient
from qdrant_client.models import Distance, VectorParams, PointStruct

client = QdrantClient(url="http://localhost:6333")

client.create_collection(
    collection_name="claims",
    vectors_config=VectorParams(size=1024, distance=Distance.COSINE),
)

client.upsert(
    collection_name="claims",
    points=[
        PointStruct(id=1, vector=embed("hail damage roof QLD"), payload={"region": "qld"}),
        PointStruct(id=2, vector=embed("storm water ingress NSW"), payload={"region": "nsw"}),
    ],
)

hits = client.search(
    collection_name="claims",
    query_vector=embed("roof leak after hailstorm"),
    limit=5,
    query_filter={"must": [{"key": "region", "match": {"value": "qld"}}]},
)

The Catch

HNSW tuning is still your problem. `m`, `ef_construct`, `ef` — the defaults are sane, but if you're chasing recall at 50M+ vectors you'll spend a weekend benchmarking. Also: distributed mode needs Raft consensus, which means you've signed up for ops work the moment you scale past one node.

The Verdict

For a serious production vector workload, Qdrant 1.0 is the move. It's faster than Weaviate, more featureful than Chroma, and the Rust core means you're not babying a JVM at 3am. If you're past the Postgres + pgvector stage and need real scale, this is what you reach for.

Let us make some quick suggestions?
Please provide your full name.
Please provide your phone number.
Please provide a valid phone number.
Please provide your email address.
Please provide a valid email address.
Please provide your brand name or website.
Please provide your brand name or website.