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.6.3-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.6.3-cp38-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for heliosdb_nano_embedded-4.6.3-cp38-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1209163daf2135852e57169250208f542df4ec602012ac260eeac902cf61937a
MD5 7484fb7cfedcd6bcea02589a4c6c63af
BLAKE2b-256 21159e0438a86f881f365fae2fc71f2fddc99ac65a092c78d4aa5fc6abf45746

See more details on using hashes here.

Provenance

The following attestation bundles were made for heliosdb_nano_embedded-4.6.3-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