Skip to main content

linaldb (Python native bindings)

Embedded native Python bindings for LINALDB — a PyO3 extension linking the same synchronous engine the CLI/REPL runs (TensorDb/execute_line, src/engine/db.rs + src/dsl/mod.rs) directly into your Python process. No server, no network — this is the "use it like SQLite" story, as opposed to clients/python (a thin HTTP client for a running linal serve). Not yet published to PyPI; see ../EMBEDDED_CONTRACT.md for the exact result shapes this module implements.

Usage

import linaldb

db = linaldb.Db()  # persists to ./data by default, exactly like the CLI
db.execute("CREATE DATASET t COLUMNS (id: Int, score: Float)")
db.execute("INSERT INTO t VALUES (1, 0.9), (2, 0.4)")

result = db.execute("SELECT * FROM t WHERE score > 0.5")
print(result.columns, result.rows)   # ExecuteResult
df = result.to_pandas()              # requires the `pandas` extra

db.execute("SAVE DATASET t")
dataset = db.dataset("t")
df = dataset.to_pandas()             # reads data.parquet directly off disk

See examples/digit_classification_embedded.py and the Jupyter notebook examples/digit_classification_embedded.ipynb for a complete real-data walkthrough — the same real UCI handwritten-digits classification workflow clients/python/examples/digit_classification.py runs over HTTP, ported to embedded mode: no linal serve subprocess at all, just an in-process Db(), an in-process classification query, and an independent numpy recomputation from the dataset export, cross-checked against the SQL result.

Build

This crate vendors HDF5 and pulls in arrow/tokio/axum/zarrs as dependencies of the root linal crate (Cargo.toml here has a path dependency on ../..) — the first build compiles all of that, same as building the CLI itself; a .cargo/config.toml here points the build at the repo-root target/ dir to avoid a second full vendor build if you've already built the root crate.

Requires a Rust toolchain (cmake + a C toolchain for HDF5, per the root CLAUDE.md) and maturin:

python3 -m venv .venv && source .venv/bin/activate
pip install maturin
maturin develop           # builds the extension, installs it into .venv

If your Python interpreter is newer than PyO3's currently-supported maximum CPython version, set PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 for the build (PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 maturin develop) — this repo was built and verified against CPython 3.14 that way.

Development

source .venv/bin/activate
pip install -e ".[dev]"
maturin develop
pytest tests/

No live server needed for anything here (that's the whole point of embedded mode) — tests and examples all run against an in-process Db().

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 Distributions

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

linaldb-0.1.1-cp39-abi3-win_amd64.whl (10.0 MB view details)

Uploaded CPython 3.9+Windows x86-64

linaldb-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.4 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

linaldb-0.1.1-cp39-abi3-macosx_11_0_arm64.whl (7.8 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file linaldb-0.1.1-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: linaldb-0.1.1-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 10.0 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for linaldb-0.1.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6b0c1ccab0f3ebea3ca62c5dda9a373c5116ca9d2aedb4442fc1e4ed638be424
MD5 e5656ab50dabd26a827cd1df6bd8a166
BLAKE2b-256 ac2fa434f7614ebf4dd462cc5884eff9590b3b890d14ee46778e9428050b6132

See more details on using hashes here.

Provenance

The following attestation bundles were made for linaldb-0.1.1-cp39-abi3-win_amd64.whl:

Publisher: pypi-publish-embedded.yml on gorigami/linaldb

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

File details

Details for the file linaldb-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for linaldb-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6748106a0c5dcf1809dc5e79e1d3e153ab707225887f7a460074e66705cc0cd8
MD5 3e3d502f8f4eac916a07a7d027de4475
BLAKE2b-256 e6a3831795fce3cb6eb5d05940b3d0699c7706a6300c27857374f9753f74a2b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for linaldb-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: pypi-publish-embedded.yml on gorigami/linaldb

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

File details

Details for the file linaldb-0.1.1-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for linaldb-0.1.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1cc1fd094d9f9dfb25b07cc6dc487039137be812dcbf5ff207e32c21d831ea17
MD5 6a28f0b779e0082d1a817b4a1ca34479
BLAKE2b-256 2180d6c74d02947a37befe005cbebddd9eb5603bdfba71380ec2e38fb863f58a

See more details on using hashes here.

Provenance

The following attestation bundles were made for linaldb-0.1.1-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: pypi-publish-embedded.yml on gorigami/linaldb

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

Release history Release notifications | RSS feed

This release

0.1.1 This release

3 files

0.1.0

3 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page