nano-vectordb
A simple, easy-to-hack Vector Database implementation
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >=3.9; embedding vectors must be numpy arrays with consistent dimensionality.
- 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 · maintenance · safety
permissive license (permissive) — Licensed under MIT (permissive), allowing commercial and private use with minimal restrictions—no compliance burden for most use cases.
last release 2024-11-11 (641 days) · last repo commit 2026-01-09 · 206 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 316,993 downloads/mo, #7,671 on PyPI
Alternatives
Verify before relying
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)- 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.
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 on it.
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
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.
Requires Python >=3.9; embedding vectors must be numpy arrays with consistent dimensionality.
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)
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 | permissive license permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagenumpy |
| 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 |
| Classifiers | License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3 |
Evidence: nano_vectordb-0.0.4.3-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “in-memory vector store”
- nano-vectordbA lightweight vector database that stores and queries embeddings with…
- qdrant-clientPython client library for Qdrant vector search engine, supporting…
- llama-index-vector-stores-milvusIntegrates the Milvus vector database with LlamaIndex for storing and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Database packages
psycopg2-binary is a PostgreSQL database adapter for Python that implements the DB API 2.0 specification, enabling Python applications to connect to and query PostgreSQL databases with thread-safe concurrent operations.
Python client library for connecting to and executing commands against Redis key-value stores, supporting both synchronous and asynchronous operations.
Install it if your application needs to interact with Redis; the only prerequisite is a running Redis server instance.
YDB Python SDK is the official client library for connecting to and querying YDB databases from Python applications.
Install it if you need to connect Python applications to YDB databases.
Connects Python applications to Snowflake data warehouses using the DB API 2.0 specification, enabling SQL queries, data transfers, and warehouse operations.
sqlparse tokenizes SQL text into a tree of statements, clauses, and expressions, and provides functions to split scripts, format queries, and inspect parsed tokens without validating dialect or syntax.
Install it if you need to manipulate, format, or analyze SQL text programmatically.
Provides base adapter protocols and shared functionality that database adapters use to integrate with dbt-core, handling connections, dialect translation, relation caching, and core interface management.
See also upstash-vector · pgvecto-rs · sqlite-vec · pgvector · vecs · usearch · nucliadb-utils · qdrant-client