icechunk
Icechunk Python
What it is and what it does
Icechunk augments Zarr with transactional guarantees and version control for multidimensional array data stored on cloud object storage. It presents a key-value interface to Zarr while managing all I/O, enabling safe parallel reads and writes from multiple uncoordinated processes without external locks or databases. A repo is a self-contained Zarr store (typically a group with multiple related arrays) that supports snapshots, branches, tags, and time-travel access to previous versions.
The package is built on Rust bindings (PyO3) and provides serializable isolation—reads always see committed snapshots, writes are atomic and never partially visible. It supports chunk sharding, chunk references to external formats like HDF5, and schema evolution. Icechunk is designed for scientific computing, data science, and AI/ML workflows where consistent, versioned tensor storage on cloud infrastructure is required.
Use it for:
- Store and version large multidimensional datasets (e.g., climate, geospatial, or scientific simulations) on S3 or other cloud storage with transactional safety.
- Enable multiple concurrent processes to read and write to the same Zarr arrays without coordination or locking.
- Maintain immutable snapshots and branches of tensor data for reproducibility and time-travel debugging.
- Organize related arrays into hierarchical groups with schema evolution (add, rename, remove arrays with minimal overhead).
- Reference chunks from external file formats (HDF5, NetCDF) within a Zarr-compatible store.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Icechunk is a transactional storage engine for tensor/ND-array data that works with Zarr to provide consistent, multi-process-safe reads and writes on cloud object storage.
Yes, if you need transactional, multi-process-safe tensor storage on cloud object storage with Zarr. The package is actively maintained, has no known vulnerabilities, and supports current Python versions. However, verify the license treatment before use in proprietary contexts, and confirm that the Apache 2.0 license mentioned in the description is formally declared. Medium install friction is acceptable for most environments given the availability of prebuilt wheels.
Install
icechunk on PyPI
pip
pip install icechunkuv
uv add icechunkpoetry
poetry add icechunkInstalling icechunk
Before you install
Medium install friction due to compiled Rust bindings; wheels are available for current Python versions (3.12+) and common platforms (x86_64, arm64, macOS, Linux, Windows). Active maintenance with recent release.
License in practice
License treatment is unclear; the description excerpt mentions Apache 2.0, but the metadata does not confirm this. Verify the actual license before use in proprietary or restricted contexts.
Quickstart
pip install icechunk
import zarr
from icechunk import IcechunkStore
store = IcechunkStore(root="s3://bucket/path")
group = zarr.open_group(store=store, mode="r+")
Requires Python 3.12 or later; Zarr must be installed as a runtime dependency.
Verify before relying
- Whether Apache 2.0 license claimed in description excerpt is formally declared in package metadata
- Specific cloud storage backends supported beyond the description's mention of GCS, Azure, and S3
- Performance characteristics and scalability limits for concurrent transactions
- Compatibility with Zarr implementations other than Zarr Python
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — zarr |
| Maintenance | actively maintained — 16 days since the last release |
| First released | |
| Downloads | 276,005/month — #8,169 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: icechunk-2.1.2-cp312-abi3-macosx_10_12_x86_64.whl; icechunk-2.1.2-cp312-abi3-macosx_11_0_arm64.whl; icechunk-2.1.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; icechunk-2.1.2-cp312-abi3-manylinux_2_28_aarch64.whl; icechunk-2.1.2-cp312-abi3-musllinux_1_2_aarch64.whl; icechunk-2.1.2-cp312-abi3-musllinux_1_2_x86_64.whl; icechunk-2.1.2-cp312-abi3-win_amd64.whl
Tags
More Database packages
psycopg2-binary is a PostgreSQL database…
copyleft · top 1,000 on PyPI
redisPython client library for connecting to and…
permissive · top 1,000 on PyPI
ydbYDB Python SDK is the official client library…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
sqlparsesqlparse tokenizes SQL text into a tree of…
permissive · top 1,000 on PyPI
dbt-adaptersProvides base adapter protocols and shared…
permissive · top 1,000 on PyPI
kerchunkKerchunk extracts metadata from chunked,…
permissive · top 15,000 on PyPI
tensorstoreTensorStore reads and writes large…
permissive · top 5,000 on PyPI
chonkie-corechonkie-core splits text at semantic boundaries…
permissive · top 15,000 on PyPI
ome-zarrReads and writes multi-resolution images stored…
permissive · top 15,000 on PyPI
memchunkSplits text into semantic chunks at delimiters…
permissive · top 15,000 on PyPI
pydantic-zarrProvides Pydantic models for reading,…
permissive · top 15,000 on PyPI
raft-dask-cu12Provides multi-node multi-GPU distributed…
permissive · top 15,000 on PyPI
chonkieChonkie splits text into semantically…
permissive · top 5,000 on PyPI
repoze-sendmailCouples email sending with Zope transactions,…
permissive · top 15,000 on PyPI
libkvikio-cu12libkvikio-cu12 provides Python and C++ bindings…
permissive · top 15,000 on PyPI