altor-vec vs milvus
altor-vec vs Milvus — Client-Side vs Distributed Vector Database
Milvus is an open-source distributed vector database built for billion-scale server-side workloads. altor-vec is a 54KB WASM library that runs semantic search entirely in the browser with no server required. They are different tools solving different problems — but both appear when developers search for "vector search for JavaScript."
npm install altor-vec | No server, no configuration, no API keys.Feature comparison
| Capability | altor-vec | Milvus |
|---|---|---|
| Runs in browser | Yes — 54KB WASM | No |
| Server required | No | Yes — etcd, MinIO, Milvus nodes |
| Setup time | < 2 minutes | Hours (Docker Compose or Kubernetes) |
| Max corpus size | ~100K vectors (browser memory) | Billions of vectors |
| Concurrent writes | Batch only (on deploy) | Continuous, high-throughput |
| Filtering | Post-search metadata filter | Rich structured filtering at query time |
| Cost | Zero API cost — compute is client-side | Infrastructure cost (self-hosted or Zilliz Cloud) |
| Privacy | Data never leaves the browser | Server-side — data in your infrastructure |
| TypeScript | Full type support | Python-first; JS SDK available |
| Offline | Yes — works without network | No |
Code comparison
altor-vec (browser, no server)
import init, { WasmSearchEngine } from 'altor-vec';
await init();
const engine = WasmSearchEngine.from_vectors(vectors, 384, 16, 200, 50);
const results = JSON.parse(engine.search(queryVector, 5));
Milvus (server-side)
import { MilvusClient } from '@zilliz/milvus2-sdk-node';
const client = new MilvusClient({ address: 'localhost:19530' });
await client.search({
collection_name: 'docs',
vectors: [queryVector],
limit: 5,
output_fields: ['title', 'content'],
});
The code difference reflects the architecture: altor-vec initializes locally and queries locally. Milvus requires a running server, collection management, and network round-trips. For a public documentation search or product catalog, altor-vec ships 10x faster with zero operational cost. For a shared AI platform with millions of private vectors and concurrent writes from multiple services, Milvus is the right foundation.
When to choose each
Choose altor-vec when:
- You need semantic search embedded in a JavaScript or TypeScript web application, and your corpus is public, static, or device-local — documentation sites, e-commerce catalogs, knowledge bases.
- Zero backend infrastructure is a requirement: no Kubernetes cluster, no cloud account, no Docker images to build and maintain. altor-vec deploys as a static asset with your frontend.
- Privacy by architecture matters — all vectors and documents remain in the user's browser and never transit your servers or any third-party network.
Choose Milvus when:
- Your workload requires billion-scale vector storage with distributed indexing across multiple nodes — Milvus separates coordinator, query, data, and index nodes to scale each dimension independently.
- You need high-throughput concurrent writes: Milvus supports continuous ingestion from multiple data producers simultaneously, with WAL-backed durability and segment-based compaction.
- Your team needs centralized, shared vector infrastructure consumed by multiple applications, microservices, or AI agents, with role-based access control and enterprise observability.
Performance characteristics
altor-vec targets low-latency retrieval in memory-constrained browser environments. HNSW queries complete in under one millisecond because everything — the graph structure, the vectors, the search logic — lives in WebAssembly linear memory inside the browser tab. Build time for a 50K-vector index at 384 dimensions is typically 200–600ms, which is normally done at deploy time and shipped as a prebuilt binary. Practical memory limits mean altor-vec is most comfortable below 100K vectors; beyond that, browser memory pressure begins to degrade performance on lower-end devices.
Milvus operates at a fundamentally different scale. Its distributed architecture separates storage (MinIO or S3), coordination (etcd), and compute (query nodes, data nodes, index nodes) so each tier can scale independently. Milvus supports multiple index types — HNSW, IVF_FLAT, IVF_SQ8, DiskANN — and quantization options that allow billion-scale corpora with selective precision trade-offs. Query latency on a tuned Milvus cluster runs 1–10ms per query server-side, though network overhead adds to that for client applications. Milvus's load balancing and segment compaction make it suitable for sustained, high-concurrency production workloads that would be impossible to replicate in a single-tab browser environment.
Frequently asked questions
What scale does Milvus support vs altor-vec?
Milvus is designed to handle billions of vectors across distributed nodes, making it suitable for enterprise recommendation engines, large-scale RAG pipelines, and multi-tenant AI platforms. altor-vec is constrained by browser memory and performs best with corpora up to 50K–100K vectors at typical embedding dimensions. For datasets beyond that threshold, a server-side solution like Milvus is the correct architecture.
Can altor-vec be used as a lightweight alternative to Milvus?
Yes, for a specific subset of use cases. If your application needs semantic search over a public, static dataset that fits in browser memory — documentation, product catalogs, blog content — altor-vec delivers that without any of Milvus's operational complexity. It is not an alternative for multi-service shared vector infrastructure or workloads requiring continuous writes from multiple producers.
Does altor-vec support distributed search like Milvus?
No. altor-vec runs as a single in-process WASM search engine within one browser tab. Milvus is architecturally distributed, splitting query routing, indexing, and object storage across dedicated node types. Distributed search with shared state across multiple clients requires a server-side database; altor-vec is not built for that deployment model.
The hybrid approach
Many teams use both: altor-vec for public documentation search (shipped as a static asset, works offline, zero cost), and Milvus for private knowledge bases, recommendation engines, or AI features that require centralized data with access control. The boundary is usually: can the browser hold this data? If yes, altor-vec. If not, Milvus.
related resources