BudgetVec is now in public beta — deploy billion-scale vector search on Cloudflare for $0.015/GB. Get started →

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" }

]});