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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b0c1ccab0f3ebea3ca62c5dda9a373c5116ca9d2aedb4442fc1e4ed638be424
|
|
| MD5 |
e5656ab50dabd26a827cd1df6bd8a166
|
|
| BLAKE2b-256 |
ac2fa434f7614ebf4dd462cc5884eff9590b3b890d14ee46778e9428050b6132
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
linaldb-0.1.1-cp39-abi3-win_amd64.whl -
Subject digest:
6b0c1ccab0f3ebea3ca62c5dda9a373c5116ca9d2aedb4442fc1e4ed638be424 - Sigstore transparency entry: 2785220237
- Sigstore integration time:
-
Permalink:
gorigami/linaldb@2cb0688f5a70e3238345da52bc5c5a1e4a3d9a7b -
Branch / Tag:
refs/tags/linaldb-v0.1.1 - Owner: https://github.com/gorigami
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish-embedded.yml@2cb0688f5a70e3238345da52bc5c5a1e4a3d9a7b -
Trigger Event:
push
-
Statement type:
File details
Details for the file linaldb-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: linaldb-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 9.4 MB
- Tags: CPython 3.9+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6748106a0c5dcf1809dc5e79e1d3e153ab707225887f7a460074e66705cc0cd8
|
|
| MD5 |
3e3d502f8f4eac916a07a7d027de4475
|
|
| BLAKE2b-256 |
e6a3831795fce3cb6eb5d05940b3d0699c7706a6300c27857374f9753f74a2b5
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
linaldb-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
6748106a0c5dcf1809dc5e79e1d3e153ab707225887f7a460074e66705cc0cd8 - Sigstore transparency entry: 2785220643
- Sigstore integration time:
-
Permalink:
gorigami/linaldb@2cb0688f5a70e3238345da52bc5c5a1e4a3d9a7b -
Branch / Tag:
refs/tags/linaldb-v0.1.1 - Owner: https://github.com/gorigami
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish-embedded.yml@2cb0688f5a70e3238345da52bc5c5a1e4a3d9a7b -
Trigger Event:
push
-
Statement type:
File details
Details for the file linaldb-0.1.1-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: linaldb-0.1.1-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 7.8 MB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1cc1fd094d9f9dfb25b07cc6dc487039137be812dcbf5ff207e32c21d831ea17
|
|
| MD5 |
6a28f0b779e0082d1a817b4a1ca34479
|
|
| BLAKE2b-256 |
2180d6c74d02947a37befe005cbebddd9eb5603bdfba71380ec2e38fb863f58a
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
linaldb-0.1.1-cp39-abi3-macosx_11_0_arm64.whl -
Subject digest:
1cc1fd094d9f9dfb25b07cc6dc487039137be812dcbf5ff207e32c21d831ea17 - Sigstore transparency entry: 2785220467
- Sigstore integration time:
-
Permalink:
gorigami/linaldb@2cb0688f5a70e3238345da52bc5c5a1e4a3d9a7b -
Branch / Tag:
refs/tags/linaldb-v0.1.1 - Owner: https://github.com/gorigami
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish-embedded.yml@2cb0688f5a70e3238345da52bc5c5a1e4a3d9a7b -
Trigger Event:
push
-
Statement type: