Skip to content

Python Grainlift toolkit v0.3.0

Choose a tag to compare

@rustyconover rustyconover released this 02 Oct 13:28
· 4 commits to main since this release

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.