Skip to content

Releases: Query-farm/grainlift-python

Python Grainlift toolkit v0.4.0

Choose a tag to compare

@rustyconover rustyconover released this 07 Oct 04:49

Connection responses now declare the selected backend's statistics and statistic-name support. Grainlift protocol 0.5 clients can return ADBC NOT_IMPLEMENTED locally when a backend explicitly reports false, saving an HTTP round trip for each unsupported metadata call. Unknown support continues remote dispatch, and table schemas remain fresh.

Requires a Grainlift 0.5 client; upgrade clients and workers together. SDK tests and the shared Rust wire contract pass.

Python Grainlift toolkit v0.3.1

Choose a tag to compare

@rustyconover rustyconover released this 02 Oct 16:08

Published to PyPI as grainlift 0.3.1.

  • Bound parameter batches are limited by what one request carries (Limits.request_bytes, or object storage's upload limit), not by Limits.batch_bytes. The native driver sizes bind turns from the advertised request limit alone, so a batch that fit the request but exceeded batch_bytes (1 MiB by default, below the 2 MiB request limit) was rejected with "Bind batch exceeds configured limit".
  • A result batch may be as large as anything a client can bind, so a service can return what it accepted. The HTTP response limit follows.
  • Verified with the native driver and grainlift's shared conformance suite, including its new request-limit and object storage tests (69 passed).

Python Grainlift toolkit v0.3.0

Choose a tag to compare

@rustyconover rustyconover released this 02 Oct 13:28

Published to PyPI as grainlift 0.3.0.

Large HTTP requests and results through S3-compatible object storage (AWS S3, Cloudflare R2, MinIO), matching grainlift-server's [external_storage]:

  • grainlift.ExternalStorageConfig, passed as external_storage= to Service.app, serve and serve_granian: clients get presigned upload URLs (POST /__upload_url__/init) for requests over the request limit, and result batches over the threshold are stored in the bucket and returned as presigned GET URLs. URLs are signed in-process (SigV4, no boto3); the service fetches only objects in its own bucket. Credentials default to AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY and are hidden from repr.
  • Install with pip install 'grainlift[storage]'.
  • Development host flags --storage-endpoint, --storage-bucket, --storage-region, --storage-prefix.
  • HTTP only; the TCP host is unchanged.

Verified end to end with the native grainlift ADBC driver against a local S3 emulator and Cloudflare R2.

Python Grainlift toolkit v0.1.0

Pre-release

Choose a tag to compare

@rustyconover rustyconover released this 28 Sep 05:19

Initial source prerelease of the Python Grainlift worker toolkit for protocol 0.4.0.

Provides typed ADBC worker methods, authenticated HTTP and TCP/mTLS hosting, pull-based Arrow results, and explicit backend capability handling. The SDK's installed-wheel CI matrix passes on Linux and macOS with Python 3.13 and 3.14; the paired native candidate evidence remains in the Grainlift repository.

This GitHub release contains source archives only. The package is not published to PyPI, and production deployment qualification remains separate from this prerelease.