Skip to main content

linaldb-server (Python client)

Python client for LINALDB — a SQL-inspired analytical engine treating vectors, matrices, and tensors as first-class citizens.

Status: two releases on PyPI. 0.1.0 (2026-09-09) was the initial HTTP client — /execute and /delivery both implemented and tested against a real server, plus a real end-to-end example (see below). 0.1.1 (2026-09-16) fixed a real, silent data-corruption bug found via real-world testing in the linal-hub sibling project: TensorResult.to_numpy() ignored the wire payload's own strides/ offset fields, so a non-contiguous tensor result (e.g. SHOW of a zero-copy TRANSPOSE) came back with plausible-looking but wrong values, no exception — to_numpy() now reconstructs correctly, and a UserWarning was added for the concurrent-session footgun described below. See CHANGELOG.md for full detail. Verified against engine 0.1.82. Published on PyPI as linaldb-server:

pip install linaldb-server

Talks to a running linal serve instance over its HTTP API (POST /execute for ad-hoc DSL, /delivery/* for real Parquet dataset export) — see ../CONTRACT.md for the exact wire contract this client implements against. No compiled extension; requires linal serve running an engine version >= 0.1.74 (the version that fixed USE <database> sent to /execute to actually persist, and fixed /delivery to honor a non-default database).

Usage

import linaldb_server as linaldb

client = linaldb.connect("http://localhost:8080")
df = client.query("SELECT id, embedding FROM docs WHERE score > 0.8")

dataset = client.dataset("my_dataset")
df = dataset.to_pandas()          # requires the `pandas` extra
table = dataset.to_arrow()        # pyarrow.Table, no extra required

A Client/connect() call with no database= operates on the server's shared, process-wide active database — matching the embedded CLI/REPL, where USE <db> persists for the whole session. Pass database="..." for an isolated session instead (every request then carries X-Linal-Database and is fully scoped, regardless of what any other client does concurrently). A bare USE <db> sent by a Client with no database= raises a UserWarning, since that statement mutates state shared with every other client connected to the same server.

See examples/digit_classification.py for a complete real-data walkthrough: it starts a real linal serve, replays a real UCI handwritten-digits classification workflow through this client, queries the result via /execute, exports the same data via /delivery, and independently recomputes the classification from the raw exported vectors to confirm both paths agree exactly.

About

LINALDB is built by Gorigami, a software company based in Colombia, and maintained by Nicolás Balaguera. See the project README and LICENSE for the full picture and licensing terms.

Development

pip install -e ".[dev]"
pytest

Requires cargo build --bin linal to have been run in the repo root first — the integration tests and the example script both launch a real linal serve from the built binary (skipped, not failed, if it's missing).

Metadata

Release files for linaldb-server 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for linaldb-server 0.1.2
File Size Uploaded Provenance Actions
linaldb_server-0.1.2.tar.gz 19.3 kB With provenance Details for linaldb_server-0.1.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for linaldb-server 0.1.2
File Interpreter ABI Platform Actions
linaldb_server-0.1.2-py3-none-any.whl Python 3 none any Details for linaldb_server-0.1.2-py3-none-any.whl

Total release size: 30.3 kB

Release files / linaldb_server-0.1.2.tar.gz

Download URL linaldb_server-0.1.2.tar.gz
Size 19.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9c39e4689ce8eed8376ab0afc7a7d542cdaf6a36b4055f581a458905e5d730c7
BLAKE2b-256 checksum
How to use checksums
a7aa7a54388345f3237d7a14e542669b22d9f4579316f7b9118aef6e16dc6fc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Release files / linaldb_server-0.1.2-py3-none-any.whl

Download URL linaldb_server-0.1.2-py3-none-any.whl
Size 11.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
07b9b0f03f4766cf5193d775c3b43c0a54a8d4c8c5ed6f7348f1ce1bf55d753d
BLAKE2b-256 checksum
How to use checksums
7148486d9a377e01570b807bf7d2701eb6dc08ea36b65d304c27366792703868
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

Security for linaldb-server 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for linaldb_server-0.1.2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 16, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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