Skip to main content

A small, prototypical zarrita-like Python Zarr implementation on top of zarrs.

Project description

zarrista

PyPI

A low-level Zarr API for Python, inspired by zarrita.js, powered from Rust by Zarrs. Serving up Zarr chunks like your favorite barista!

This has been minimally vibe-coded: mostly but not fully written by hand. Some areas were prototyped with Claude.

This project is for evaluation, to consider whether natively binding to Zarrs can provide better performance. It is not yet production ready.

Documentation

Documentation website.

Features

  • Low-level, explicit Zarr access: open arrays and groups, read chunks, and inspect metadata without hidden machinery.
  • Both sync and async APIs (Array / AsyncArray, Group / AsyncGroup).
  • Rust core via Zarrs for compiled performance.
  • NumPy integration: read data into NumPy arrays through the buffer protocol for zero-copy sharing between Rust and Python.
  • Variety of data access
    • AWS S3, Google Cloud Storage, Azure Storage via Obstore
    • Icechunk integration
  • Full type hinting for all operations.

Example

Open a store, then open an Array from it:

from zarrista import Array, FilesystemStore

store = FilesystemStore("data/example.zarr")
array = Array.open(store, path="/temperature")

Inspect the array's metadata:

array.shape
# [720, 1440]

array.dtype
# DataType(float32)

array.dimension_names
# ["lat", "lon"]

Read a subset of the array. Indexing returns a Data buffer, which converts to a NumPy array:

data = array[0:128, 0:128]
arr = data.to_numpy()
arr.shape
# (128, 128)

You can also read individual chunks by their grid index:

data = array.retrieve_chunk([0, 0])

Development

Requires a Rust toolchain and Python 3.11+. We use uv and maturin.

# Create a dev environment and install the dev dependencies
uv sync --no-install-package zarrista

# Build the Rust extension and install it into the environment (debug build)
uv run --no-project maturin develop --uv

# Or, in release mode:
uv run --no-project maturin develop --uv --release

# Run the tests
uv run --no-project pytest

The --no-project is annoying but unavoidable in our current setup. Otherwise uv will try to build the rust library in release mode, as a dependency of the project before reaching uv sync or uv run.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zarrista-0.1.0b4.tar.gz (201.7 kB view details)

Uploaded Source

Built Distributions

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

zarrista-0.1.0b4-cp311-abi3-win_amd64.whl (15.5 MB view details)

Uploaded CPython 3.11+Windows x86-64

zarrista-0.1.0b4-cp311-abi3-musllinux_1_2_x86_64.whl (23.0 MB view details)

Uploaded CPython 3.11+musllinux: musl 1.2+ x86-64

zarrista-0.1.0b4-cp311-abi3-musllinux_1_2_aarch64.whl (22.1 MB view details)

Uploaded CPython 3.11+musllinux: musl 1.2+ ARM64

zarrista-0.1.0b4-cp311-abi3-manylinux_2_28_x86_64.whl (16.4 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ x86-64

zarrista-0.1.0b4-cp311-abi3-manylinux_2_28_aarch64.whl (15.6 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

zarrista-0.1.0b4-cp311-abi3-macosx_11_0_arm64.whl (14.4 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

zarrista-0.1.0b4-cp311-abi3-macosx_10_12_x86_64.whl (16.0 MB view details)

Uploaded CPython 3.11+macOS 10.12+ x86-64

File details

Details for the file zarrista-0.1.0b4.tar.gz.

File metadata

  • Download URL: zarrista-0.1.0b4.tar.gz
  • Upload date:
  • Size: 201.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zarrista-0.1.0b4.tar.gz
Algorithm Hash digest
SHA256 dc0486468b817ad3f45940588e519bd059f697a99eca41cf83bde90e6df6bf2c
MD5 800ca594a024e9f93e5f6c16a95e024f
BLAKE2b-256 781714899cb7a924ac99cc26b143d06f70e834dfefb19fa3aa712f4e86398e7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b4.tar.gz:

Publisher: python-wheels.yml on developmentseed/zarrista

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

File details

Details for the file zarrista-0.1.0b4-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: zarrista-0.1.0b4-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 15.5 MB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zarrista-0.1.0b4-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7155385baa56733c3891019f526190573d92b7a0563bb7191ecba658d675f6b9
MD5 37eccc785935885e3ae8401b27d15eff
BLAKE2b-256 3ece72a352217c4960550598c71341f8a854ec0b95df2d2a23ac9350baf0e623

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b4-cp311-abi3-win_amd64.whl:

Publisher: python-wheels.yml on developmentseed/zarrista

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

File details

Details for the file zarrista-0.1.0b4-cp311-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b4-cp311-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 68f66b87401d5492d5871c9e96be2c04b9895636341f518431607fbac1497d94
MD5 2b689eb475c59e77a65c73a001cb51f0
BLAKE2b-256 6c18e132f59031970f41384fa3108faad4a9412756d7bbc1bfb21e562a290fd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b4-cp311-abi3-musllinux_1_2_x86_64.whl:

Publisher: python-wheels.yml on developmentseed/zarrista

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

File details

Details for the file zarrista-0.1.0b4-cp311-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b4-cp311-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d66fe6df1ec30b4759b8ed189de80de89a06cda93d6fe88c11f438edfec2c897
MD5 7b607d3f87393f9b065e8a14a3bf3caa
BLAKE2b-256 96bc4c5e82583b2dc1445b3c36b42d708444f8fcf38c82d260d2c957c69df33c

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b4-cp311-abi3-musllinux_1_2_aarch64.whl:

Publisher: python-wheels.yml on developmentseed/zarrista

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

File details

Details for the file zarrista-0.1.0b4-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b4-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 61bfaf6c1ca2aea7469e5b3651c09956c951d1cf59086ec7089244f0125ae71c
MD5 5e4dffee03e527bbec634e4acf1084f4
BLAKE2b-256 b881c5357aa9466052a051ae0e8127386de7d291af03c84f69dffff1b5122fda

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b4-cp311-abi3-manylinux_2_28_x86_64.whl:

Publisher: python-wheels.yml on developmentseed/zarrista

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

File details

Details for the file zarrista-0.1.0b4-cp311-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b4-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 77c221bfe4970a0717547a9332e256459d353299ff66ea39477c5621e263de95
MD5 852c30c794f1bc63bdabfa239d74eb12
BLAKE2b-256 274998166f2a778ff30e0ced6c3951a3bff3e404f26448dfba67c9c99b1f3219

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b4-cp311-abi3-manylinux_2_28_aarch64.whl:

Publisher: python-wheels.yml on developmentseed/zarrista

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

File details

Details for the file zarrista-0.1.0b4-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b4-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c3868e1fdac5f465216022923791a472a19877770ef071bc496a8146cdabd4d
MD5 ba426b397c307081d7fcfad271497167
BLAKE2b-256 af883c489708dbab79bc49bb7a8694e9c4b3822cd9b8dc8be1f032348a5da1ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b4-cp311-abi3-macosx_11_0_arm64.whl:

Publisher: python-wheels.yml on developmentseed/zarrista

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

File details

Details for the file zarrista-0.1.0b4-cp311-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b4-cp311-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f43de78447d5c9b1990910f5cfbe0fe0a46e24ae00fec4be7eda1f56e14ab250
MD5 cb10a2abe66dc887027c6bb0c5356801
BLAKE2b-256 009274da73c77b714faaed2dbf7371fb65db8f7ca730adddf0b4ac27224be23b

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b4-cp311-abi3-macosx_10_12_x86_64.whl:

Publisher: python-wheels.yml on developmentseed/zarrista

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page