Self-Hosted Vector Search • Per-Core BYOC

Filtered vector search under 2 ms—in RAM or straight from NVMe.

Graph indexes slow down when queries filter by tenant, permissions, or metadata, and require expensive RAM to stay responsive. MassEngine runs inside your own VPC using 7× less memory than HNSW, with zero multi-hour compaction stalls.

1.2 ms
Filtered search latency
5,800+ QPS at 10% filter selectivity on 40 vCPUs
7× less RAM
Or direct NVMe mode
Serve 20M vectors in 1.3 GiB RAM per node
11 min
To index 10M vectors
Cohere-10M on 16 vCPUs vs. 2–10 hours on HNSW

Built for production filters and predictable cloud bills.

Measured on AWS EC2 with unmodified upstream VectorDBBench (Cohere-10M) and multi-node Wikipedia datasets (2M to 144M vectors).

MassEngine vs. HNSW Baselines Across Production Workloads
Workload Typical HNSW Baseline MassEngine
Filtered search (10% match, 2M vectors, 40 vCPUs) 392 QPS • 18.5 ms (OpenSearch 3.9) 5,849 QPS • 1.5 ms (4.9 GiB vs. 34.1 GiB RAM/node)
10M index build time (Cohere-10M, 16 vCPUs) 2.4 – 4.0 hours (Milvus / Qdrant 16c64g) 11.1 minutes on c6id.4xlarge (32 GiB RAM, NVMe)
Streaming reads under 1,000 writes/sec 156 – 348 QPS (Milvus / Qdrant 16c64g) 1,797 QPS • 2.4 ms p99 (0.985 recall)
20M-vector cluster monthly cost (1024-d, AWS) $4,500+ / mo (RAM-bound HNSW instances) $536 / mo all-in (4 NVMe VMs + 4-core license)

Drop into your stack in five minutes.

Single static binary for Linux and macOS with zero external dependencies, paired with official zero-dependency SDKs.

Python PyPI ↗
pip install massengine
TypeScript npm ↗
npm install @massengine/client
go get github.com/massengine-dev/massengine-go@latest
from massengine import MassEngineClient, Doc

client = MassEngineClient(
    base_url="http://localhost:8080",
    api_key="mk_live_9f8a7b6c...",
)

client.ingest("acme-prod", [
    Doc(id="doc-1", vector=[0.021, -0.044, 0.089], metadata={"department": "security", "clearance": 3})
])

res = client.search(
    "acme-prod",
    vector=[0.021, -0.044, 0.089],
    k=10,
    metadata_filter={"department": {"$in": ["security", "legal"]}, "clearance": {"$gte": 2}},
)

Filter-first execution

Metadata predicates ($eq, $in, $gte, $lte, $contains) narrow candidates before vector scoring—queries accelerate as filters tighten, and attributes can be patched in place without re-embedding.

Multi-tenant isolation

Isolate thousands of customer workspaces on shared hardware with scoped RBAC keys, per-tenant rate limits, and instant tenant deletion without background segment merges.

Runs inside your VPC

Your embeddings and documents never leave your network. Deploy on AWS, GCP, Azure, Docker, or bare metal with zero-downtime rolling upgrades.

Simple per-core licensing. Zero RAM or storage fees.

Bring your own cloud or bare metal. Stateless coordinator gateways consume zero licensed cores.

Developer
$0 / month

Free forever for local development, prototypes, and single-core workloads.

  • 1 CPU core (single node)
  • Up to 1,000,000 vectors
  • RAM and Direct NVMe modes included
  • No credit card required
Activate Free License →
Benchmarking a multi-node cluster? Redeem ME-EVAL-LAUNCH-21-DAYS in the Console for a free 8-core, 21-day trial.
Need volume licensing, annual invoicing, or a 16+ core benchmark key? Contact Engineering
Enter a valid work email.
Enter your company or project name.