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 in a JavaScript/TypeScript application, your corpus is public or device-local, you want zero backend infrastructure, and your dataset fits in browser memory (up to ~100K vectors).
Choose Milvus when: You need billion-scale vector storage, concurrent writes from multiple services, complex structured filtering at query time, or centralized vector infrastructure shared across multiple applications.
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.