DuxxDB — the database built for AI agents. Hybrid (vector + BM25 + structured) retrieval, agent-native primitives (MEMORY / TOOL_CACHE / SESSION), embedded-or-server, RESP / gRPC / MCP.
Project description
duxxdb — Python bindings
Native Python bindings for DuxxDB, the
agent-native hybrid database. Built with PyO3 + maturin against the
stable Python ABI (abi3-py38) so a single wheel supports
Python 3.8 through 3.13.
Install
From a wheel (recommended)
pip install duxxdb-0.1.0-cp38-abi3-<platform>.whl
(For now, build the wheel locally — see the next section. Public PyPI release lands with v0.1.0.)
Build from source
# Prerequisites: Rust toolchain, Python ≥ 3.8.
pip install --user maturin
cd bindings/python
maturin build --release
pip install --force-reinstall ../../target/wheels/duxxdb-0.1.0-cp38-abi3-*.whl
On Windows + Git Bash the workspace uses the GNU toolchain — see ../../docs/SETUP.md for the WinLibs MinGW prerequisite.
Quickstart
import duxxdb
store = duxxdb.MemoryStore(dim=4)
def embed(text):
"""Replace this with a real embedder (OpenAI / Cohere / local BGE)."""
import hashlib
h = int(hashlib.sha1(text.lower().encode()).hexdigest()[:16], 16)
v = [(h >> (i*4)) & 0xff for i in range(4)]
norm = sum(x*x for x in v) ** 0.5 or 1.0
return [x / norm for x in v]
store.remember(key="alice", text="I lost my wallet at the cafe", embedding=embed("wallet"))
store.remember(key="alice", text="My favorite color is blue", embedding=embed("blue"))
hits = store.recall(key="alice", query="wallet",
embedding=embed("wallet"), k=3)
for hit in hits:
print(f"{hit.score:.4f} {hit.text}")
Output:
0.0328 I lost my wallet at the cafe
0.0161 My favorite color is blue
API surface
| Class | Constructor | Methods |
|---|---|---|
MemoryStore |
dim, capacity=100_000 |
remember(key, text, embedding) -> id, recall(key, query, embedding, k=10) -> [MemoryHit], len(), dim |
MemoryHit |
(returned by recall) |
id, key, text, score |
ToolCache |
threshold=0.95 |
put(tool, args_hash, args_embedding, result, ttl_secs=3600), get(tool, args_hash, args_embedding) -> ToolCacheHit | None, purge_expired(), len() |
ToolCacheHit |
(returned by get) |
kind ("exact" or "semantic_near_hit"), similarity, result |
SessionStore |
ttl_secs=1800 |
put(session_id, data), get(session_id) -> bytes | None, delete(session_id) -> bool, purge_expired(), len() |
Module-level: duxxdb.__version__.
ToolCache: semantic-near-hit demo
cache = duxxdb.ToolCache(threshold=0.95)
# Cache the result of an expensive web_search call.
cache.put(tool="web_search", args_hash=hash("what is rust?"),
args_embedding=embed("what is rust?"),
result=b"A systems programming language ...",
ttl_secs=600)
# Later, a paraphrased query — different hash, similar embedding.
hit = cache.get("web_search",
args_hash=hash("describe rust"),
args_embedding=embed("describe rust"))
if hit and hit.kind == "semantic_near_hit":
print(f"cache hit by paraphrase, similarity={hit.similarity:.3f}")
answer = hit.result.decode() if isinstance(hit.result, bytes) else bytes(hit.result).decode()
What's missing today
- Subscriptions (
MemoryStore.subscribe()) — Phase 4.5; the Rust / RESP servers already support this, the Python wrapper just needs to bridgetokio::broadcast::Receiverinto a Python iterator. - Async API — currently sync only.
async defwrappers are planned. - Numpy / typed-array fast path — embeddings are currently
list[float]. Phase 3.5 will acceptnp.ndarray[float32]directly vianumpy::PyArrayLike.
See ../../docs/ROADMAP.md for the broader plan.
License
Apache 2.0. See ../../LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
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 duxxdb-0.1.2.tar.gz.
File metadata
- Download URL: duxxdb-0.1.2.tar.gz
- Upload date:
- Size: 62.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4c611d7020e8a64e16226567d5c687600f83846a0079f73b63ed6b95fe086576
|
|
| MD5 |
de34f0a5e23fb932e0d385448ecdb76f
|
|
| BLAKE2b-256 |
60c143740dc35d5b013a1cbb0ca6e622b01b378ce1b339a6c2050d9be9d64da5
|
Provenance
The following attestation bundles were made for duxxdb-0.1.2.tar.gz:
Publisher:
pypi.yml on bankyresearch/duxxdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
duxxdb-0.1.2.tar.gz -
Subject digest:
4c611d7020e8a64e16226567d5c687600f83846a0079f73b63ed6b95fe086576 - Sigstore transparency entry: 1540338562
- Sigstore integration time:
-
Permalink:
bankyresearch/duxxdb@0c06f45dae5f3a7846821b38f8851fe520484135 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/bankyresearch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@0c06f45dae5f3a7846821b38f8851fe520484135 -
Trigger Event:
push
-
Statement type:
File details
Details for the file duxxdb-0.1.2-cp38-abi3-win_amd64.whl.
File metadata
- Download URL: duxxdb-0.1.2-cp38-abi3-win_amd64.whl
- Upload date:
- Size: 3.4 MB
- Tags: CPython 3.8+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ae0df373f93a131f67b92dc70ce3cdf401c1b71e87be9fb62453718c94db04f
|
|
| MD5 |
2b8c18f0179279f66bd0dfbbe5455153
|
|
| BLAKE2b-256 |
56e6557d49a3adb736da9654403c66c7fbdf1d7d734f71090595da86434aed10
|
Provenance
The following attestation bundles were made for duxxdb-0.1.2-cp38-abi3-win_amd64.whl:
Publisher:
pypi.yml on bankyresearch/duxxdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
duxxdb-0.1.2-cp38-abi3-win_amd64.whl -
Subject digest:
0ae0df373f93a131f67b92dc70ce3cdf401c1b71e87be9fb62453718c94db04f - Sigstore transparency entry: 1540338819
- Sigstore integration time:
-
Permalink:
bankyresearch/duxxdb@0c06f45dae5f3a7846821b38f8851fe520484135 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/bankyresearch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@0c06f45dae5f3a7846821b38f8851fe520484135 -
Trigger Event:
push
-
Statement type:
File details
Details for the file duxxdb-0.1.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: duxxdb-0.1.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 3.6 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
729f86292355f81a65598e6e3643b54acb259ccbc0ecc53cfaa1744e2f4639a2
|
|
| MD5 |
6df7e1ed011ea4d9fce93892265e6b42
|
|
| BLAKE2b-256 |
76760dd396753f985fe8c623496bffeba09dc27d50e2b357bacc9a88289c109d
|
Provenance
The following attestation bundles were made for duxxdb-0.1.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
pypi.yml on bankyresearch/duxxdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
duxxdb-0.1.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
729f86292355f81a65598e6e3643b54acb259ccbc0ecc53cfaa1744e2f4639a2 - Sigstore transparency entry: 1540338678
- Sigstore integration time:
-
Permalink:
bankyresearch/duxxdb@0c06f45dae5f3a7846821b38f8851fe520484135 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/bankyresearch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@0c06f45dae5f3a7846821b38f8851fe520484135 -
Trigger Event:
push
-
Statement type:
File details
Details for the file duxxdb-0.1.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: duxxdb-0.1.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 3.5 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8d0e2a3fbb943ee625c7f3f8be56c67ae95397ec4b9f9b96af1c185b16d12ad
|
|
| MD5 |
241d8b95d820afcbbad23426fddfff9e
|
|
| BLAKE2b-256 |
77007e57961c18cac330f9014bb769c5499a3aa6839f96ddb5963d94c9f5a21e
|
Provenance
The following attestation bundles were made for duxxdb-0.1.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
pypi.yml on bankyresearch/duxxdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
duxxdb-0.1.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
c8d0e2a3fbb943ee625c7f3f8be56c67ae95397ec4b9f9b96af1c185b16d12ad - Sigstore transparency entry: 1540339034
- Sigstore integration time:
-
Permalink:
bankyresearch/duxxdb@0c06f45dae5f3a7846821b38f8851fe520484135 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/bankyresearch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@0c06f45dae5f3a7846821b38f8851fe520484135 -
Trigger Event:
push
-
Statement type:
File details
Details for the file duxxdb-0.1.2-cp38-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: duxxdb-0.1.2-cp38-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 3.2 MB
- Tags: CPython 3.8+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47652a61c8e00c2999ab56e24ff3ab89904754b83e5edba6924c9591746d96cf
|
|
| MD5 |
2e333de67f0598d3a305969f1e95a477
|
|
| BLAKE2b-256 |
5d2909877a60b8fed9617a7d9ee4d8ed7815f5211bcddcb778c75f7ba51e7242
|
Provenance
The following attestation bundles were made for duxxdb-0.1.2-cp38-abi3-macosx_11_0_arm64.whl:
Publisher:
pypi.yml on bankyresearch/duxxdb
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
duxxdb-0.1.2-cp38-abi3-macosx_11_0_arm64.whl -
Subject digest:
47652a61c8e00c2999ab56e24ff3ab89904754b83e5edba6924c9591746d96cf - Sigstore transparency entry: 1540338912
- Sigstore integration time:
-
Permalink:
bankyresearch/duxxdb@0c06f45dae5f3a7846821b38f8851fe520484135 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/bankyresearch
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@0c06f45dae5f3a7846821b38f8851fe520484135 -
Trigger Event:
push
-
Statement type: