nano-vectordb
A simple, easy-to-hack Vector Database implementation
What it is and what it does
nano-vectordb is a minimal vector database implementation written in pure Python with only numpy as a dependency. It stores embeddings alongside arbitrary metadata fields and supports similarity search via vector queries, filtering by custom predicates, and optional multi-tenancy for managing multiple independent vector stores. Data persists to JSON files and reloads automatically on initialization.
The package is explicitly positioned for prototyping and small-scale use. The description notes it can query 100,000 vectors in roughly 0.1 seconds and handle insertion of 100,000 vectors in roughly 2 seconds on a MacBook M3 Pro. It is straightforward to understand and modify, making it suitable for learning or rapid iteration, though the aging maintenance status and lack of active development suggest it is not intended as a production vector database replacement.
Use it for:
- Rapid prototyping of embedding-based search or recommendation features without external database infrastructure.
- Small-scale semantic search applications where query latency under 100ms and dataset size under 100,000 vectors is acceptable.
- Educational projects or proof-of-concepts exploring vector similarity and embedding workflows.
- Multi-tenant prototypes where each tenant needs an isolated vector store managed in a single Python process.
- Local development and testing of embedding pipelines before migrating to a production vector database.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A lightweight vector database that stores and queries embeddings with a single numpy dependency, designed for prototyping and small-to-medium workloads.
Yes, for prototyping and learning. The low install friction, single dependency, and straightforward API make it ideal for quickly exploring vector search workflows. However, do not use for production systems: the aging maintenance status (last commit 2026-01-09, first release 2024-08-19), lack of active development, and positioning as 'okay for prototypes, maybe even more' signal limited long-term support. Choose a mature vector database (Weaviate, Pinecone, Milvus) for production workloads.
Install
nano-vectordb on PyPI
pip
pip install nano-vectordbuv
uv add nano-vectordbpoetry
poetry add nano-vectordbInstalling nano-vectordb
Before you install
Installation is straightforward with low friction—a pure Python wheel with only numpy as a runtime dependency. The project shows aging maintenance (last commit 2026-01-09, first release 2024-08-19) but remains active and archived=false, suitable for prototypes rather than production systems requiring active support.
License in practice
Licensed under MIT (permissive), allowing commercial and private use with minimal restrictions—no compliance burden for most use cases.
Quickstart
pip install nano-vectordb
from nano_vectordb import NanoVectorDB
import numpy as np
vdb = NanoVectorDB(1024, storage_file="vectors.json")
data = [{"__vector__": np.random.rand(1024), "id": i} for i in range(100)]
vdb.upsert(data)
results = vdb.query(np.random.rand(1024), top_k=5)
Requires Python >=3.9; embedding vectors must be numpy arrays with consistent dimensionality.
Verify before relying
- Performance characteristics beyond the single benchmark (100,000 vectors, 1024 dims, ~0.1s query) on different hardware or vector sizes.
- Scalability limits and behavior when storage file or in-memory index grows beyond typical prototyping scale.
- Multi-tenancy feature maturity and production readiness given aging maintenance status.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | aging — 641 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 316,993/month — #7,671 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: nano_vectordb-0.0.4.3-py3-none-any.whl
Tags
More Database packages
psycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
redisPython client library for connecting to and…
permissive · top 1,000 on PyPI
ydbYDB Python SDK is the official client library…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
sqlparsesqlparse tokenizes SQL text into a tree of…
permissive · top 1,000 on PyPI
dbt-adaptersProvides base adapter protocols and shared…
permissive · top 1,000 on PyPI
upstash-vectorPython client for Upstash Vector, a serverless…
permissive · top 15,000 on PyPI
pgvecto-rsProvides Python bindings for PGVecto.rs, a…
permissive · top 15,000 on PyPI
sqlite-vecsqlite-vec adds vector search capabilities to…
permissive · top 5,000 on PyPI
pgvectorAdds vector storage and similarity search…
permissive · top 1,000 on PyPI
vecsvecs is a Python client for storing, indexing,…
permissive · top 15,000 on PyPI
usearchUSearch provides approximate nearest-neighbor…
permissive · top 15,000 on PyPI
nucliadb-utilsProvides utility functions and data structures…
permissive · top 15,000 on PyPI
qdrant-clientPython client library for Qdrant vector search…
permissive · top 1,000 on PyPI