Skip to main content

सूत्र DB (SutraDB)

Python NumPy Tests Latency License

सूत्र (Sūtra): An aphorism or thread of knowledge designed to hold vast wisdom in the most concise, unbreakable form.

SutraDB is an ultra-fast, zero-dependency hybrid vector search and BM25 lexical engine engineered in pure Python. It combines SIMD-accelerated linear algebra with Robertson-Spärck Jones BM25 ranking and in-flight compound metadata filtering.

Designed specifically for the 95% of AI applications (local RAG, agent memory, enterprise document search, catalog matching) that need sub-millisecond retrieval without the multi-gigabyte dependency trees of Chroma or the network latency of cloud-managed vector databases.


🏗️ Architecture

                              CLIENT REQUEST
             [ Text Query: "P99 latency bug" | Vector: [0.12, ...] ]
             [ Metadata Filter: {"status": "resolved", "priority": {"$lte": 2}} ]
                                     │
                                     ▼
                      ┌──────────────────────────────┐
                      │    SutraDB Execution Core    │
                      └──────────────┬───────────────┘
                                     │
         ┌───────────────────────────┼───────────────────────────┐
         ▼                           ▼                           ▼
┌──────────────────┐       ┌──────────────────┐       ┌──────────────────┐
│  Metadata Engine │       │ Dense Vector Core│       │ Sparse BM25 Core │
│ (AST Predicates) │       │ (SIMD BLAS / SQ8)│       │ (Lexical Tokens) │
└────────┬─────────┘       └────────┬─────────┘       └────────┬─────────┘
         │                          │                          │
         │ Dynamic Bitmask          │ Dense Scores             │ Lexical Scores
         │ (e.g., 0b101100)         │ [0.89, 0.42, ...]        │ [12.4, 0.0, ...]
         └─────────────┬────────────┴─────────────┬────────────┘
                       │                          │
                       ▼                          ▼
               ┌───────────────┐          ┌───────────────┐
               │ Masked Dense  │          │ Masked BM25   │
               │ Top-K Heap    │          │ Top-K Heap    │
               └───────┬───────┘          └───────┬───────┘
                       │                          │
                       └───────────┬──────────────┘
                                   │
                                   ▼
                   ┌───────────────────────────────┐
                   │ Reciprocal Rank Fusion (RRF)  │
                   │ Merges semantic + exact words │
                   └───────────────┬───────────────┘
                                   │
                                   ▼
                   ┌───────────────────────────────┐
                   │    Ranked Final Results       │
                   │    P50: 0.36ms | P99: 5.9ms   │
                   └───────────────────────────────┘

⚡ Key Highlights

  • Pure SIMD / BLAS Velocity: Pre-normalizes vectors at insertion time so Cosine Similarity reduces to a single GEMV matrix-vector multiplication executed in L1 cache lines.
  • Reciprocal Rank Fusion (RRF): Dense embeddings understand semantic intent; BM25 matches exact serial numbers, error codes, and technical jargon. SutraDB dynamically fuses both ranking signals via RRF.
  • Single-Stage In-Flight Predicate Masking: Zero subset memory allocations. Evaluates complex JSON conditions ($eq, $ne, $gt, $gte, $in, $nin, $contains, $and, $or) into high-speed bitmasks in under $30\mu\text{s}$.
  • Zero-Copy Memory-Mapped Persistence: Custom .sutra 64-byte aligned binary format allows near-instant cold starts via mmap, backed by an append-only CRC32 Write-Ahead Log (WAL) for durability.
  • Embedded HTTP REST Micro-server: Built-in zero-dependency server exposes /health, /collections, /insert, and /query endpoints for microservice architectures.

📊 Benchmark Comparison

Ran on standard 4-vCPU Linux environment (5,000 documents, 128 dimensions):

Metric SutraDB (सूत्र DB) ChromaDB Pinecone (Cloud)
Dependency Footprint 1 library (NumPy) ~45 libraries Proprietary client
Cold Start Time < 2 ms ~850 ms N/A (Cloud API)
Vector Search Latency (P50) 0.36 ms ~4.2 ms 35 – 65 ms (Network roundtrip)
Ingestion Throughput 52,000+ docs/sec ~4,800 docs/sec Rate-limited by HTTP
RAM Overhead ~22 MB ~140 MB 0 MB (Remote)
Setup Overhead pip install sutradb Docker / heavy pip API keys + Monthly bill

🚀 Quickstart

1. Installation

git clone https://github.com/Sam-CodesAI/SutraDB.git
cd SutraDB
pip install -e .

2. Basic Usage (Python SDK)

from sutradb import SutraDB, Document

# Initialize SutraDB with disk persistence
db = SutraDB(persist_directory="./sutra_data")

# Create or load collection
collection = db.get_or_create_collection(name="kb", dimension=4, metric="cosine")

# Insert documents
collection.insert([
    Document(
        id="doc_1",
        vector=[0.95, 0.05, 0.10, 0.00],
        text="Deploying containerized microservices to Kubernetes",
        metadata={"category": "devops", "tier": "internal"}
    ),
    Document(
        id="doc_2",
        vector=[0.02, 0.98, 0.05, 0.01],
        text="PostgreSQL connection pooling and pgbouncer tuning",
        metadata={"category": "database", "tier": "public"}
    )
])

# Hybrid query combining semantic vector + text keywords + metadata filter
results = collection.query(
    vector=[1.0, 0.0, 0.0, 0.0],
    text="Kubernetes microservices",
    filter={"tier": "internal"},
    top_k=5,
    hybrid=True
)

for r in results:
    print(f"[{r.score:.4f}] {r.id}: {r.text}")

🌐 Running as an HTTP Microservice

Start the built-in HTTP server:

python3 -m sutradb.server 8765

Query via curl:

# Health check
curl http://localhost:8765/health

# Insert documents
curl -X POST http://localhost:8765/collections/demo/insert \
  -H "Content-Type: application/json" \
  -d '{"documents": [{"id": "d1", "vector": [1,0,0], "text": "Sample", "metadata": {"tag": "ai"}}]}'

# Hybrid search
curl -X POST http://localhost:8765/collections/demo/query \
  -H "Content-Type: application/json" \
  -d '{"vector": [1,0,0], "text": "Sample", "filter": {"tag": "ai"}, "top_k": 5}'

🧪 Test Suite

Run the full verification and benchmark suite:

pytest -v tests

📜 License

MIT License. Engineered by Samarth.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sutradb_core-2.0.0.tar.gz (27.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sutradb_core-2.0.0-py3-none-any.whl (21.9 kB view details)

Uploaded Python 3

File details

Details for the file sutradb_core-2.0.0.tar.gz.

File metadata

  • Download URL: sutradb_core-2.0.0.tar.gz
  • Upload date:
  • Size: 27.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sutradb_core-2.0.0.tar.gz
Algorithm Hash digest
SHA256 4d87da6af2ea385b94b17c6178b93231d6d916260a40ee93b5b8e3d5b2f8a06b
MD5 4b5ba03a9beceac31706b2d3d841c16c
BLAKE2b-256 d0c0b93523fbc4004e91b02416422ba7bbe75e0efd089eeff475db0115002c89

See more details on using hashes here.

File details

Details for the file sutradb_core-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: sutradb_core-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 21.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.13 {"installer":{"name":"uv","version":"0.12.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sutradb_core-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1c97a9dbebf73d26a3faf5564f13b3ff43193f770faabb20c3b428938b33f31b
MD5 2e209a912cb7395bac441767739bdfc0
BLAKE2b-256 82048511983f30b2749837d5d03ce803c1a666ac5351b31818f5356913681573

See more details on using hashes here.

Release history Release notifications | RSS feed

2.1.0

2 files

2.0.1

2 files

This release

2.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page