Introduction
BudgetVec is a multi-tenant, billion-scale vector search platform built entirely on Cloudflare's edge infrastructure — Workers, R2, and KV.
Why BudgetVec?
Traditional vector databases charge $0.25–$1.00 per GB of stored vectors per month, plus significant per-query fees. BudgetVec leverages Cloudflare R2's $0.015/GB storage and Workers' $0.30/million request pricing to deliver ~90% cost reduction without sacrificing query performance.
Key Features
- Sub-10ms queries — Pufferfish 3-tier cache (L1 in-Worker memory, L2 KV, L3 R2) keeps hot data close
- 32× compression — RaBitQ 1-bit quantization + Product Quantization reduce storage dramatically
- Hybrid search — Combine vector similarity (ANN) with BM25 full-text ranking in a single query
- Multi-tenant isolation — Each tenant gets isolated R2 prefixes, KV caches, and API keys
- 6 global regions — Deploy data to WNAM, ENAM, WEUR, EEUR, APAC, or OC
- Zero cold starts — Pure WASM on Cloudflare Workers means no container spin-up
Architecture
Client → CF Worker (WASM) → Pufferfish Cache → R2 Storage
↓
RaBitQ + PQ Codec
BM25 + ANN Engine
Thai Tokenization
The Worker receives API requests, authenticates via KV-stored tenant configs, and routes to the appropriate handler. Write operations go through the ingestion pipeline (validate → encode → WAL). Read operations check the Pufferfish cache hierarchy before falling back to R2.
Getting Started
The fastest way to start is with the TypeScript SDK:
import { BudgetVecClient } from "@budgetvec/client";
const client = new BudgetVecClient({
baseUrl: "https://budgetvec.standupcode.workers.dev",
apiKey: "your-api-key",
});
const ns = client.namespace("my-index");
await ns.upsert({ upsert_rows: [
{ id: 1, vector: [0.1, 0.2, ...], title: "Hello world" }
]});