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
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.
🧠 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 phase tracking: 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
The detailed internal roadmap and phase tracking now live in things-to-do.md instead
of this README.
📄 License
MIT.
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.dev1.tar.gz.
File metadata
- Download URL: humemdb-0.1.0.dev1.tar.gz
- Upload date:
- Size: 164.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
366b2264466b3689e981aecf7e5d6754ed11fe0d9a88910080c41a9149523e0a
|
|
| MD5 |
01669434b702c107f4c13da5072a12f2
|
|
| BLAKE2b-256 |
911ee1e72f46c0e77ae67e3dda6190a6c52b4fc796efdadd71a260ae4f61cbc1
|
Provenance
The following attestation bundles were made for humemdb-0.1.0.dev1.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.dev1.tar.gz -
Subject digest:
366b2264466b3689e981aecf7e5d6754ed11fe0d9a88910080c41a9149523e0a - Sigstore transparency entry: 1151237654
- Sigstore integration time:
-
Permalink:
humemai/humemdb@f3681cbebd5fcef711aaca68ad47783c9e2a0f90 -
Branch / Tag:
refs/tags/v0.1.0.dev1 - Owner: https://github.com/humemai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@f3681cbebd5fcef711aaca68ad47783c9e2a0f90 -
Trigger Event:
push
-
Statement type:
File details
Details for the file humemdb-0.1.0.dev1-py3-none-any.whl.
File metadata
- Download URL: humemdb-0.1.0.dev1-py3-none-any.whl
- Upload date:
- Size: 31.1 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 |
b0b53ca0f771f8769a3662290f43f859d313951f8b1a18b4f0ad82f267129363
|
|
| MD5 |
f20b17c52bb0d5ec5b66cc579c7babdb
|
|
| BLAKE2b-256 |
88c7c0fa57764241a42b1a0c490a8f1bf211307505041f20db608fce0c1213ff
|
Provenance
The following attestation bundles were made for humemdb-0.1.0.dev1-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.dev1-py3-none-any.whl -
Subject digest:
b0b53ca0f771f8769a3662290f43f859d313951f8b1a18b4f0ad82f267129363 - Sigstore transparency entry: 1151237688
- Sigstore integration time:
-
Permalink:
humemai/humemdb@f3681cbebd5fcef711aaca68ad47783c9e2a0f90 -
Branch / Tag:
refs/tags/v0.1.0.dev1 - Owner: https://github.com/humemai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@f3681cbebd5fcef711aaca68ad47783c9e2a0f90 -
Trigger Event:
push
-
Statement type: