Skip to main content

PaveDB — A lightweight, pluggable vector search microservice.

Upload → chunk → index (with metadata) → search via REST and CLI.

Highlights

  • Multi-tenant collections: /collections/{tenant}/{name}
  • Upload and search TXT, CSV, and PDF
  • Deterministic provenance: every hit returns doc id, page, offset, snippet
  • Metadata filters on search ({"filters": {"docid": "DOC-1"}})
  • REST and CLI entry points
  • Health/metrics endpoints + Prometheus exporter
  • Pluggable embeddings and stores; default stack is local FAISS + SBERT

Requirements

  • Python 3.10–3.14

Install (PyPI)

python -m venv .venv
source .venv/bin/activate
pip install pavedb

CPU-only deployments can use the PyTorch CPU wheel index:

pip install "pavedb[cpu]" \
  --index-url https://download.pytorch.org/whl/cpu \
  --extra-index-url https://pypi.org/simple

Quickstart

# Start the server (installed entry point)
pavesrv

# Or run with uvicorn manually if you prefer:
uvicorn pave.main:app --host 0.0.0.0 --port 8086

Auth defaults to none only for dev. For production, set static auth:

export PAVEDB_AUTH__MODE=static
export PAVEDB_AUTH__GLOBAL_KEY="your-secret"

Minimal config (optional)

By default PaveDB runs with sensible local defaults. For a user install, customize ~/pavedb/config.yml:

vector_store:
  type: faiss
embedder:
  default: native
  instances:
    native:
      type: sbert
auth:
  mode: static
  global_key: ${PAVEDB_GLOBAL_KEY}

Then export:

export PAVEDB_GLOBAL_KEY="your-secret"

If you keep the file elsewhere, point the runtime at it explicitly:

export PAVEDB_CONFIG=/path/to/config.yml

CLI example

pavecli create-collection demo books
pavecli ingest demo books demo/20k_leagues.txt --docid=verne-20k \
  --metadata='{"lang":"en"}'
pavecli search demo books "captain nemo" -k 5

REST example

# Create a collection
curl -X POST http://localhost:8086/v1/collections/demo/books \
  -H "Authorization: Bearer your-secret"

# Upload a TXT document
curl -X POST http://localhost:8086/v1/collections/demo/books/documents \
  -H "Authorization: Bearer your-secret" \
  -F "file=@demo/20k_leagues.txt" -F "docid=verne-20k" \
  -F 'metadata={"lang":"en"}'

# Search (GET, no filters)
curl -G --data-urlencode "q=hello" \
  -H "Authorization: Bearer your-secret" \
  http://localhost:8086/v1/collections/demo/books/search

# Search (POST, with filters)
curl -X POST http://localhost:8086/v1/collections/demo/books/search \
  -H "Authorization: Bearer your-secret" \
  -H "Content-Type: application/json" \
  -d '{"q":"captain nemo","k":5,"filters":{"docid":"verne-20k"}}'

License

AGPL-3.0-or-later — (C) 2025, 2026 Rodrigo Rodrigues da Silva rodrigo@flowlexi.com

Download files

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

Source Distribution

pavedb-0.9.3.1.tar.gz (326.6 kB view details)

Uploaded Source

Built Distribution

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

pavedb-0.9.3.1-py3-none-any.whl (214.6 kB view details)

Uploaded Python 3

File details

Details for the file pavedb-0.9.3.1.tar.gz.

File metadata

  • Download URL: pavedb-0.9.3.1.tar.gz
  • Upload date:
  • Size: 326.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for pavedb-0.9.3.1.tar.gz
Algorithm Hash digest
SHA256 2f83a6cff8e08642a4627f4932f8af3edbc3f383939e7c55e437d336210f6ea2
MD5 95dcb5a126cfbc0d06a37dd530ba1d38
BLAKE2b-256 b734bcc3ea4cdd2bf156ca50f68e73ace01293a643219abb0737771926d429a2

See more details on using hashes here.

File details

Details for the file pavedb-0.9.3.1-py3-none-any.whl.

File metadata

  • Download URL: pavedb-0.9.3.1-py3-none-any.whl
  • Upload date:
  • Size: 214.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for pavedb-0.9.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 39348f376c851c8fc27fc5e98091548fd551bdaf1f4304b2e779cd6d901df339
MD5 cc2b42aaa6ecbe68eadbd5edddb43f8c
BLAKE2b-256 4df5768bf218835b67f2ef4b0b4373705308722dc565309a9eff05967362969f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page