Embedded multi-model database orchestration over SQLite, DuckDB, Cypher, and exact and ANN vector search
Project description
HumemDB
Multi-model embedded data orchestration for SQL, Cypher, and vector search.
✨ What HumemDB is
HumemDB is a Python-first embedded runtime that keeps each engine doing the job it is already good at.
- SQLite for OLTP.
- DuckDB for OLAP.
- Cypher support over SQL-backed graph storage.
- Exact and ANN vector search, with the default runtime path starting from an exact SQLite-plus-NumPy baseline today.
- LanceDB later where the benchmark justifies an indexed ANN path.
Today, it starts as a thin Python orchestration layer over embedded engines. The longer-term goal is a single embedded system that supports standard SQL, Cypher, and vector search without forcing one engine to do every job.
The goal is not to force SQL, graph, and vector workloads through one backend just because that sounds clean. The goal is a simple, explicit orchestration layer with clear routing and defensible tradeoffs.
✅ Current status
HumemDB already ships a real v0 surface for three query modes:
HumemSQL v0HumemCypher v0HumemVector v0
Current behavior is intentionally explicit:
- Route:
sqliteorduckdb - Query type:
sql,cypher, orvector - Writes go to SQLite
- DuckDB is the analytical read path
- Vector search starts from the exact baseline path today
🔗 Documentation
Install
HumemDB supports Python 3.10 and newer.
Install from source:
uv pip install .
Install in editable mode for development:
uv pip install -e .
For contributors, use:
uv sync
uv sync makes the local environment match the project exactly using pyproject.toml
and uv.lock.
When dependencies change:
uv lock
uv sync
uv lock updates the lockfile with exact resolved versions. uv sync installs that
exact environment.
Libraries HumemDB relies on
HumemDB is a pure Python orchestration layer, but it relies on a small set of core Python libraries and embedded engines:
sqlite3from the Python standard library for the canonical local write path.duckdbfor analytical reads over the SQLite-backed source-of-truth database.numpyfor the exact in-memory vector search baseline.sqlglot[c]for the current PostgreSQL-like SQL translation layer.lancedbfor benchmark work and future indexed ANN paths.threadpoolctlfor thread-pool coordination around compute-heavy dependencies.
Those dependencies are part of the public runtime story. HumemDB does not try to hide them behind a fake "single engine" narrative.
🧠 What is supported today
SQL
- PostgreSQL-like portable subset translated with
sqlglot - statement coverage:
SELECT,INSERT,UPDATE,DELETE,CREATE - recursive CTEs intentionally unsupported in
v0
Cypher
- narrow
CREATEandMATCHflows - labeled nodes and single directed relationships
- relationship aliases and reverse-edge matches
- simple
WHERE ... AND ...equality filtering ORDER BYandLIMIT
Vector
- SQLite-backed vector storage
- exact NumPy baseline path
- bucket filtering
- benchmark path toward indexed ANN where justified
⚡ Quick example
from humemdb import HumemDB
with HumemDB("app.sqlite3", "analytics.duckdb") as db:
db.query(
"CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT NOT NULL)",
route="sqlite",
)
with db.transaction(route="sqlite"):
db.query(
"INSERT INTO users (name) VALUES (?)",
route="sqlite",
params=("Alice",),
)
result = db.query(
"SELECT id, name FROM users",
route="sqlite",
)
print(result.rows)
More examples live in examples/ and in the docs site.
🔗 Quick links
- Docs: docs.humem.ai/humemdb
- Repository: github.com/humemai/humemdb
- Issues: github.com/humemai/humemdb/issues
- Internal roadmap notes: things-to-do.md
📦 Packaging
HumemDB itself is a pure Python package today. It does not ship platform-specific project binaries, even though some dependencies may install native wheels on the user side.
🗺️ Planning
Detailed internal roadmap notes now live in things-to-do.md instead of this README.
📄 License
HumemDB's own source code is licensed under MIT. See LICENSE.
Third-party dependencies keep their own licenses. Installing HumemDB may also install third-party Python packages and, in some cases, their native wheels. Those components are not relicensed under MIT just because HumemDB depends on them.
For the concrete dependency set, see pyproject.toml and uv.lock.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file humemdb-0.1.0.dev2.tar.gz.
File metadata
- Download URL: humemdb-0.1.0.dev2.tar.gz
- Upload date:
- Size: 166.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbe1d43c1409e885c3c169c967c0d883fa8458c7904c3c091a7a20f4ba95a5f7
|
|
| MD5 |
9444fd43bb6e530243146013a0d38830
|
|
| BLAKE2b-256 |
50975438f5098064e15c3c9d20f21bff99c03a09afe1a851af128c6c829b4d69
|
Provenance
The following attestation bundles were made for humemdb-0.1.0.dev2.tar.gz:
Publisher:
publish-pypi.yml on humemai/humemdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
humemdb-0.1.0.dev2.tar.gz -
Subject digest:
cbe1d43c1409e885c3c169c967c0d883fa8458c7904c3c091a7a20f4ba95a5f7 - Sigstore transparency entry: 1154327767
- Sigstore integration time:
-
Permalink:
humemai/humemdb@ffa59bcfc53e563a62f12597ff273c2f4cd7c1d5 -
Branch / Tag:
refs/tags/v0.1.0.dev2 - Owner: https://github.com/humemai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@ffa59bcfc53e563a62f12597ff273c2f4cd7c1d5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file humemdb-0.1.0.dev2-py3-none-any.whl.
File metadata
- Download URL: humemdb-0.1.0.dev2-py3-none-any.whl
- Upload date:
- Size: 31.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
487e74e681300613517185e5613c85ef431402ed029b21861ca2373e1490c31d
|
|
| MD5 |
a545178660fc75966bc3383663e2b2d8
|
|
| BLAKE2b-256 |
90e88f342e7e5b3677af0ff68a7eea2a7ce482837fdeba60b384ccfab83c6770
|
Provenance
The following attestation bundles were made for humemdb-0.1.0.dev2-py3-none-any.whl:
Publisher:
publish-pypi.yml on humemai/humemdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
humemdb-0.1.0.dev2-py3-none-any.whl -
Subject digest:
487e74e681300613517185e5613c85ef431402ed029b21861ca2373e1490c31d - Sigstore transparency entry: 1154327770
- Sigstore integration time:
-
Permalink:
humemai/humemdb@ffa59bcfc53e563a62f12597ff273c2f4cd7c1d5 -
Branch / Tag:
refs/tags/v0.1.0.dev2 - Owner: https://github.com/humemai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@ffa59bcfc53e563a62f12597ff273c2f4cd7c1d5 -
Trigger Event:
push
-
Statement type: