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.0b3.tar.gz (195.5 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.0b3-cp311-abi3-win_amd64.whl (15.3 MB view details)

Uploaded CPython 3.11+Windows x86-64

zarrista-0.1.0b3-cp311-abi3-musllinux_1_2_x86_64.whl (22.8 MB view details)

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

zarrista-0.1.0b3-cp311-abi3-musllinux_1_2_aarch64.whl (21.9 MB view details)

Uploaded CPython 3.11+musllinux: musl 1.2+ ARM64

zarrista-0.1.0b3-cp311-abi3-manylinux_2_28_x86_64.whl (16.2 MB view details)

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

zarrista-0.1.0b3-cp311-abi3-manylinux_2_28_aarch64.whl (15.4 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.28+ ARM64

zarrista-0.1.0b3-cp311-abi3-macosx_11_0_arm64.whl (14.3 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

zarrista-0.1.0b3-cp311-abi3-macosx_10_12_x86_64.whl (15.8 MB view details)

Uploaded CPython 3.11+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: zarrista-0.1.0b3.tar.gz
  • Upload date:
  • Size: 195.5 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.0b3.tar.gz
Algorithm Hash digest
SHA256 47ca918c89705af9b2eed4818ad3b46858ad27b7a2dad014a25cc2de132be3f6
MD5 3eac11d2286fd24ff153e5cd96ad71a0
BLAKE2b-256 04fbed0ae8041d37e92b525ede1b93839c92e5f26940a5e6e2d298c866c4f409

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b3.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.0b3-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: zarrista-0.1.0b3-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 15.3 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.0b3-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 200eb7c9d5354accf8d506af7b6a4c6422420932f6aecd243869aeccde3c7234
MD5 3074086c45f9f3700e9815c836dbce9e
BLAKE2b-256 b8e3e330a2a25ae05e69470cf0365241e70993b1dd6dabce52fd7f300fa87a0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b3-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.0b3-cp311-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b3-cp311-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c44d6e47149e373a87e8f748e3223dbda2c817c87b75f04dc3e195ee58b73c96
MD5 7335797de343eeff75c811ab1426546b
BLAKE2b-256 3c5563f542500b15e3ee27599e44dbb33cccd142914361eb94612807287f7c3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b3-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.0b3-cp311-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b3-cp311-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2d370eaa6477a12bbe01649b17232269bf322c2dbf3c262415f63fb964c5636a
MD5 72e2481151b6bb08669d4882a8df3c69
BLAKE2b-256 bab469ddb5e7c0b75230b3d84327e464d5a2a8354936026f1fa68023a9287ade

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b3-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.0b3-cp311-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b3-cp311-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c2547749f97baf929dcc3411e11ed5c9803b1be10ab5d41891226dfb23a39978
MD5 6c24bc40c8535a3bffbb9ae98fbe2a4c
BLAKE2b-256 6e35ceca59693028b00ac5a2800231a64aa9f77a7cd4d45559c3de4e69c553e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b3-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.0b3-cp311-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b3-cp311-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 de3374f76373a0e1dbe3e1e033968bf01f2acc32963661fac152bdbccb120f55
MD5 480fb632b1d70c34b21c74c9fcf48071
BLAKE2b-256 0000ac772044e493984dd1062c4e23d71f031b23e7dd0b93de34fc028ee3d1ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b3-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.0b3-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b3-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6bcddb8493fe678a8b987857d431275a19bd69ca492d286636df27c2d1424f7b
MD5 f23b5625fcb99fbd57b2263c9096bd5b
BLAKE2b-256 1ecad9dc3caf1aa92da4d346843dd13478d114fe2209f33648c494ddb2bf00c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b3-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.0b3-cp311-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for zarrista-0.1.0b3-cp311-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8c8c389a8ba4bff993b124d9eaf26e8218302a546f067fc4998bf7274e2aaef8
MD5 a02ad0dea83e2d326d8c1f56c9962a47
BLAKE2b-256 43d476c35d5819bdbc8ed44f3e437106132fa3e262942ee33e3b18574a2b10d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for zarrista-0.1.0b3-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