altor-vec vs qdrant

altor-vec vs Qdrant — Browser WASM vs Rust Vector Database

Qdrant is a high-performance vector database written in Rust, designed for server-side retrieval with payload filtering and production-grade reliability. altor-vec is a 54KB WASM library that runs HNSW vector search entirely in the browser. Both use HNSW indexing — but they serve fundamentally different deployment contexts.

altor-vec: npm install altor-vec — works in the browser immediately. No Qdrant server, no Docker, no config.

Feature comparison

Capabilityaltor-vecQdrant
Indexing algorithmHNSW (WASM)HNSW (Rust)
DeploymentBrowser (client-side)Server (Docker, Kubernetes, Qdrant Cloud)
Network requiredNo — runs offlineYes — HTTP/gRPC to Qdrant server
Query latencySub-millisecond (no network)1-10ms + network round-trip
Bundle size54KB gzippedFull server binary
Payload filteringBasic post-search filterRich structured filtering at index time
Max vectors~100K (browser memory)Billions (distributed)
JavaScript supportNative (WASM)Node.js client (not browser)
PrivacyData stays in browserData on your server
CostZero API/infra costSelf-hosted or Qdrant Cloud pricing

Code comparison

altor-vec (browser, no server)

import init, { WasmSearchEngine } from 'altor-vec';

await init();
const engine = WasmSearchEngine.from_vectors(embeddedVectors, 384, 16, 200, 50);
const hits = JSON.parse(engine.search(queryEmbedding, 5));
// Results in <1ms, no network

Qdrant (Node.js, server required)

import { QdrantClient } from '@qdrant/js-client-rest';

const client = new QdrantClient({ url: 'http://localhost:6333' });
const results = await client.search('my_collection', {
  vector: queryEmbedding,
  limit: 5,
  filter: { must: [{ key: 'category', match: { value: 'docs' } }] },
});

Both use HNSW under the hood, but the deployment model is completely different. altor-vec bundles the index as a WASM asset that ships with your frontend. Qdrant runs as a persistent service that your application calls over HTTP or gRPC. For search that needs to work offline, stay in the browser, or avoid backend infrastructure costs, altor-vec is the right architecture. For search that needs to be shared across services, requires complex filtering, or must handle continuous writes, Qdrant fits better.

The HNSW connection

Both altor-vec and Qdrant use HNSW (Hierarchical Navigable Small World) indexing, which is why they appear together in searches for "best vector search library." HNSW gives near-perfect recall with sub-linear query time. The difference is where the graph lives: in your browser's WASM runtime with altor-vec, or in a Rust process on your server with Qdrant.

When to choose each

Choose altor-vec when:

Choose Qdrant when:

Performance characteristics

altor-vec is optimized for immediate, low-latency retrieval in constrained browser environments. Queries complete in under one millisecond because there is no network overhead — the HNSW graph is resident in WASM linear memory and searched directly. Index construction uses a configurable M parameter (graph connectivity) and ef_construction (build quality), with typical build times of 100–500ms for 50K vectors at 384 dimensions. The hard ceiling is browser memory: on most devices this means roughly 50K–100K float32 vectors before memory pressure becomes an issue.

Qdrant is designed for sustained server-side throughput. Built in Rust with async I/O and gRPC support, Qdrant achieves millions of queries per second across a cluster. It supports scalar and product quantization to compress vector storage by 4–16×, enabling datasets that would not fit in RAM to be served from disk with minimal recall loss. Qdrant Cloud benchmarks demonstrate single-digit millisecond query latency at 100M+ vector scale. For JavaScript applications, the Qdrant client communicates over REST or gRPC, adding 5–50ms of network latency depending on deployment topology — a trade-off that is invisible in server-to-server architectures but noticeable in browser-originated queries.

Frequently asked questions

What is Qdrant and why is it popular?

Qdrant is an open-source, high-performance vector database written in Rust. It is popular for production RAG (retrieval-augmented generation) workloads because of its payload filtering system, which lets you apply structured metadata conditions at query time without post-processing. Qdrant supports on-disk indexes, quantization, and a managed cloud offering, making it a common choice for enterprise AI pipelines requiring precise filtered recall.

Does altor-vec support payload filtering like Qdrant?

Qdrant's payload filtering is a first-class server-side feature applied during HNSW traversal, making filtered queries over millions of vectors highly efficient. altor-vec supports basic post-search metadata filtering in JavaScript after results are returned from the WASM search. For simple filter-then-rank patterns on small corpora this works well, but for complex, high-cardinality filtering, Qdrant's approach is more scalable.

Is altor-vec suitable for production workloads like Qdrant?

altor-vec is production-ready for browser-based semantic search: it powers documentation search, product catalogs, and semantic autocomplete on real production sites. It is not designed for Qdrant's workloads — concurrent multi-service writes, billion-scale corpora, or centralized AI retrieval infrastructure. Both are production-grade tools; the right choice depends entirely on where in the stack your search feature lives.

Get started with altor-vec: npm install altor-vec — HNSW in your browser, sub-millisecond queries, 54KB. No Qdrant server needed.

related resources

implement

migrate

compare