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

File metadata

File hashes

Hashes for heliosdb_nano_embedded-4.5.0-cp38-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c666f4a1a4e7db56a1c7aa9829edd64eeb9fbcab37f35777efdfe2e6b4fdf679
MD5 90ab2adf107fcc4492ef727b85ec31c9
BLAKE2b-256 4064dbe77e162a43bfa0f9c40067ea06e2beb78ae2d15d1f0e052e2e66dd9fd3

See more details on using hashes here.

Provenance

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