Skip to main content

heliosdb-nano (Python)

In-process Python binding for HeliosDB-Nano's embedded database. Calls the Rust EmbeddedDatabase API directly — no subprocess, no wire protocol, no serialization hop — so Python sees the same path behind the "embedded beats SQLite" numbers.

import heliosdb_nano

db = heliosdb_nano.EmbeddedDatabase("/path/to/data")   # or .in_memory()

db.execute("CREATE TABLE messages (id INT, session_id TEXT, body TEXT)")
db.execute_many(
    "INSERT INTO messages (id, session_id, body) VALUES ($1, $2, $3)",
    [(1, "s1", "hi"), (2, "s1", "yo"), (3, "s2", "hey")],
)

db.query("SELECT COUNT(DISTINCT session_id) AS n FROM messages")   # [{'n': 2}]
db.query("SELECT * FROM messages WHERE session_id = $1", ("s1",))  # [{...}, {...}]

# Vector search (HNSW)
db.create_vector_store("emb", 3)
ids = db.insert_vectors("emb", [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0]])
db.vector_search("emb", [1.0, 0.0, 0.0], k=1)                      # [(id, distance)]

API

method returns
EmbeddedDatabase(path) / EmbeddedDatabase.in_memory() a handle
query(sql, params=None) list[dict]
execute(sql, params=None) affected row count (int)
execute_many(sql, rows) total affected (int)
vector_search(store, query, k) list[(id, distance)]
create_vector_store(name, dimensions) / insert_vectors(store, vectors) — / list[id]
flush()

params is a tuple/list binding positionally to $1..$n. The GIL is released around every engine call, so multiple Python threads can query concurrently.

Build from source

pip install maturin
maturin develop -m bindings/python/Cargo.toml      # editable install into the active venv
maturin build  --release -m bindings/python/Cargo.toml   # abi3 wheel in target/wheels/

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

heliosdb_nano_embedded-4.10.0-cp38-abi3-manylinux_2_28_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.28+ x86-64

File details

Details for the file heliosdb_nano_embedded-4.10.0-cp38-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for heliosdb_nano_embedded-4.10.0-cp38-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a86d010edbcd4d79fe72f08ec4cb988b467b77fb744964424accb0b4033e6ab7
MD5 375e9db6109093737311750e0f2c76d1
BLAKE2b-256 add837ec02bacf1d90720e0cb873230c294396020a2a9eb675269e04be1bdaad

See more details on using hashes here.

Provenance

The following attestation bundles were made for heliosdb_nano_embedded-4.10.0-cp38-abi3-manylinux_2_28_x86_64.whl:

Publisher: python-wheel.yml on HeliosDatabase/HeliosDB-Nano

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page