Skip to main content

Transactional storage engine for Zarr designed for use on cloud object storage

Project description

Icechunk

Icechunk logo

Icechunk is a transactional storage engine for Zarr designed for use on cloud object storage.

Let's break down what that means:

  • Zarr is an open source specification for the storage of multidimensional array (a.k.a. tensor) data. Zarr defines the metadata for describing arrays (shape, dtype, etc.) and the way these arrays are chunked, compressed, and converted to raw bytes for storage. Zarr can store its data in any key-value store.
  • Storage engine - Icechunk exposes a key-value interface to Zarr and manages all of the actual I/O for getting, setting, and updating both metadata and chunk data in cloud object storage. Zarr libraries don't have to know exactly how icechunk works under the hood in order to use it.
  • Transactional - The key improvement Icechunk brings on top of regular Zarr is to provide consistent serializable isolation between transactions. This means that Icechunk data are safe to read and write in parallel from multiple uncoordinated processes. This allows Zarr to be used more like a database.

Goals of Icechunk

The core entity in Icechunk is a store. A store is defined as a Zarr hierarchy containing one or more Arrays and Groups. The most common scenario is for an Icechunk store to contain a single Zarr group with multiple arrays, each corresponding to different physical variables but sharing common spatiotemporal coordinates. However, formally a store can be any valid Zarr hierarchy, from a single Array to a deeply nested structure of Groups and Arrays. Users of Icechunk should aim to scope their stores only to related arrays and groups that require consistent transactional updates.

Icechunk aspires to support the following core requirements for stores:

  1. Object storage - the format is designed around the consistency features and performance characteristics available in modern cloud object storage. No external database or catalog is required to maintain a store.
  2. Serializable isolation - Reads are isolated from concurrent writes and always use a committed snapshot of a store. Writes are committed atomically and are never partially visible. Readers will not acquire locks.
  3. Time travel - Previous snapshots of a store remain accessible after new ones have been written.
  4. Data Version Control - Stores support both tags (immutable references to snapshots) and branches (mutable references to snapshots).
  5. Chunk sharding and references - Chunk storage is decoupled from specific file names. Multiple chunks can be packed into a single object (sharding). Zarr-compatible chunks within other file formats (e.g. HDF5, NetCDF) can be referenced.
  6. Schema Evolution - Arrays and Groups can be added, renamed, and removed from the hierarchy with minimal overhead.

The Project

This Icechunk project consists of three main parts:

  1. The Icechunk specification.
  2. A Rust implementation
  3. A Python wrapper which exposes a Zarr store interface

All of this is open source, licensed under the Apache 2.0 license.

The Rust implementation is a solid foundation for creating bindings in any language. We encourage adopters to collaborate on the Rust implementation, rather than reimplementing Icechunk from scratch in other languages.

We encourage collaborators from the broader community to contribute to Icechunk. Governance of the project will be managed by Earthmover PBC.

How Can I Use It?

We recommend using Icechunk from Python, together with the Zarr-Python library

!!! warning "Icechunk is a very new project." It is not recommended for production use at this time. These instructions are aimed at Icechunk developers and curious early adopters.

Installation and Dependencies

Icechunk is currently designed to support the Zarr V3 Specification. Using it today requires installing the [still unreleased] Zarr Python V3 branch.

To set up an Icechunk development environment, follow these steps:

Clone the repository and navigate to the repository's directory. For example:

git clone https://github.com/earth-mover/icechunk
cd icechunk/

Activate your preferred virtual environment (here we use virtualenv):

python3 -m venv .venv
source .venv/bin/activate

Alternatively, create a conda environment

mamba create -n icechunk rust python=3.12
conda activate icechunk

Install maturin:

pip install maturin

Build the project in dev mode:

cd icechunk-python/
maturin develop

or build the project in editable mode:

cd icechunk-python/
pip install -e icechunk@.

[!WARNING] This only makes the python source code editable, the rust will need to be recompiled when it changes.

Basic Usage

Once you have everything installed, here's an example of how to use Icechunk:

from icechunk import IcechunkStore, StorageConfig
from zarr import Array, Group


# Example using memory store
storage = StorageConfig.memory("test")
store = await IcechunkStore.open(storage=storage, mode='r+')

# Example using file store
storage = StorageConfig.filesystem("/path/to/root")
store = await IcechunkStore.open(storage=storage, mode='r+')

# Example using S3
s3_storage = StorageConfig.s3_from_env(bucket="icechunk-test", prefix="oscar-demo-repository")
store = await IcechunkStore.open(storage=storage, mode='r+')

Running Tests

You will need docker compose and (optionally) just. Once those are installed, first switch to the icechunk root directory, then start up a local minio server:

docker compose up -d

Use just to conveniently run a test

just test

This is just an alias for

cargo test --all

!!! tip For other aliases see Justfile.

Snapshots, Branches, and Tags

Every update to an Icechunk store creates a new snapshot with a unique ID. Icechunk users must organize their updates into groups of related operations called transactions. For example, appending a new time slice to mutliple arrays should be done as single transactions, comprising the following steps:

  1. Update the array metadata to resize the array to accommodate the new elements.
  2. Write new chunks for each array in the group.

While the transaction is in progress, none of these changes will be visible to other users of the store. Once the transaction is committed, a new snapshot is generated. Readers can only see and use committed snapshots.

Additionally, snapshots occur in a specific linear (i.e. serializable) order within branch. A branch is a mutable reference to a snapshot--a pointer that maps the branch name to a snapshot ID. The default branch is main. Every commit to the main branch updates this reference. Icechunk's design protects against the race condition in which two uncoordinated sessions attempt to update the branch at the same time; only one can succeed.

Finally, Icechunk defines tags--immutable references to snapshot. Tags are appropriate for publishing specific releases of a repository or for any application which requires a persistent, immutable identifier to the store state.

How Does It Work?

[!NOTE] For more detailed explanation, have a look at the Icechunk spec

Zarr itself works by storing both metadata and chunk data into an abstract store according to a specified system of "keys". For example, a 2D Zarr array called myarray, within a group called mygroup, would generate the following keys:

mygroup/zarr.json
mygroup/myarray/zarr.json
mygroup/myarray/c/0/0
mygroup/myarray/c/0/1

In standard Zarr stores, these key map directly to filenames in a filesystem or object keys in an object storage system. When writing data, a Zarr implementation will create these keys and populate them with data. When modifying existing arrays or groups, a Zarr implementation will potentially overwrite existing keys with new data.

This is generally not a problem, as long there is only one person or process coordinating access to the data. However, when multiple uncoordinated readers and writers attempt to access the same Zarr data at the same time, various consistency problems problems emerge. These consistency problems can occur in both file storage and object storage; they are particularly severe in a cloud setting where Zarr is being used as an active store for data that are frequently changed while also being read.

With Icechunk, we keep the same core Zarr data model, but add a layer of indirection between the Zarr keys and the on-disk storage. The Icechunk library translates between the Zarr keys and the actual on-disk data given the particular context of the user's state. Icechunk defines a series of interconnected metadata and data files that together enable efficient isolated reading and writing of metadata and chunks. Once written, these files are immutable. Icechunk keeps track of every single chunk explicitly in a "chunk manifest".

flowchart TD
    zarr-python[Zarr Library] <-- key / value--> icechunk[Icechunk Library]
    icechunk <-- data / metadata files --> storage[(Object Storage)]

FAQ

  1. Why not just use Iceberg directly?

    Iceberg and all other "table formats" (Delta, Hudi, LanceDB, etc.) are based on tabular data model. This data model cannot accommodate large, multidimensional arrays (tensors) in a general, scalable way.

  2. Is Icechunk part of Zarr?

    Formally, no. Icechunk is a separate specification from Zarr. However, it is designed to interoperate closely with Zarr. In the future, we may propose a more formal integration between the Zarr spec and Icechunk spec if helpful. For now, keeping them separate allows us to evolve Icechunk quickly while maintaining the stability and backwards compatibility of the Zarr data model.

Inspiration

Icechunk was inspired by several existing projects and formats, most notably:

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

icechunk-0.1.0a2.tar.gz (1.0 MB view details)

Uploaded Source

Built Distributions

icechunk-0.1.0a2-cp312-none-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.12 Windows x86-64

icechunk-0.1.0a2-cp312-none-win32.whl (4.9 MB view details)

Uploaded CPython 3.12 Windows x86

icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_i686.whl (7.3 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_armv7l.whl (7.3 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARMv7l

icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_aarch64.whl (7.5 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

icechunk-0.1.0a2-cp312-cp312-manylinux_2_28_armv7l.whl (7.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARMv7l

icechunk-0.1.0a2-cp312-cp312-manylinux_2_28_aarch64.whl (7.5 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARM64

icechunk-0.1.0a2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.3 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

icechunk-0.1.0a2-cp312-cp312-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

icechunk-0.1.0a2-cp312-cp312-macosx_10_12_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

icechunk-0.1.0a2-cp311-none-win_amd64.whl (5.8 MB view details)

Uploaded CPython 3.11 Windows x86-64

icechunk-0.1.0a2-cp311-none-win32.whl (4.9 MB view details)

Uploaded CPython 3.11 Windows x86

icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_i686.whl (7.3 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_armv7l.whl (7.3 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARMv7l

icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_aarch64.whl (7.5 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

icechunk-0.1.0a2-cp311-cp311-manylinux_2_28_armv7l.whl (7.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARMv7l

icechunk-0.1.0a2-cp311-cp311-manylinux_2_28_aarch64.whl (7.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

icechunk-0.1.0a2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

icechunk-0.1.0a2-cp311-cp311-macosx_11_0_arm64.whl (6.4 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

icechunk-0.1.0a2-cp311-cp311-macosx_10_12_x86_64.whl (6.4 MB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

File details

Details for the file icechunk-0.1.0a2.tar.gz.

File metadata

  • Download URL: icechunk-0.1.0a2.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.4

File hashes

Hashes for icechunk-0.1.0a2.tar.gz
Algorithm Hash digest
SHA256 308eb0b79c0d3fecc769adcc656ab3c4108278c0d29be542ce3be221aac173ac
MD5 5fccd167212533a93404f5630ad1376a
BLAKE2b-256 fdf816a4c18596b43cd91ed67cb36b103e802c01a10d954584803977988c3c5b

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 b944c7f662f420bde570d4ccdda4a591edbd02438cf3657ce3fd708fd5c4e1dc
MD5 c0a9b70bfc4f0bb6c10329057d5a78eb
BLAKE2b-256 8f49f88630c115950472ab56a77102b80192d7e362d166efb8f01ac46c302bec

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp312-none-win32.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp312-none-win32.whl
Algorithm Hash digest
SHA256 e92ea8a6df8a4aad7ac415d967fab78c93756deb8b7f6c2121a6fb58533ab282
MD5 68a00121419421f1ec1ef73c7644f5da
BLAKE2b-256 307663dbd1ac80caf8f412f68793f1c48a529a32b44e85e8a2df402af58c8fd7

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e32844be4b91c720e96a21704e6aef7b5ecf50891fdaff4555e09ad0ab2bc7d0
MD5 b8a5e285817404dae68f39775b09960e
BLAKE2b-256 4c00b6d1da9837c43b4524f3417ec647c5e47f5c1b18b8aceeac36ff95ef33eb

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 2002a19e1bef22973bfca3c284852f23992da5a40f918c4020cac5d9efc91b81
MD5 d058ac084d7a1bed60a8c278e5dbd350
BLAKE2b-256 cfa5ed4da86a8a4317b7c10dae6923f863a236f9b0d488c40f8b212cddf42719

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 8b203cfca9e7fd40764ebd8760f9bc0c0ec99834483761d6887195e6ce00f17e
MD5 e405c7b2de2c24095c2c04cc400a48af
BLAKE2b-256 7db5d759fed2e24d7ba3a2d7b57eea4ca5aeba08f9c8f7ed093ade6996bee8cd

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9809359ecbe36765f9bbd4ea166a098e0ecca7e39acd6bea16c653b624c626ab
MD5 d6a9f22e323376b4940ab36e47e0a167
BLAKE2b-256 d5e6c6486ae8236b48b360692f1c029b163d29f2acb7fa8fcc5e4e7a162fcd46

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp312-cp312-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp312-cp312-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 c8a92d53bb90c2219a5899a6378dac0e8be9d3afe2c0ff493f5b2cf9285a392e
MD5 42666da2e58de7bb4cc54126ea8ccef2
BLAKE2b-256 7b1713df4757da18fcbfdfe14f6d5d50383bca58261528a6b8d1e373e15e8996

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e5126dac5f2a494f478813eb8b8f329153b71104effcfa75055c8496a44c9326
MD5 fa1144df1260205ffe2b54a54aa34200
BLAKE2b-256 a6ba9751523ea20ea80212f2e0f0aabcc46cfdc77fd28b27157a5f9ae119886d

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fa187ba9a3b3c110be2b039a493aae0aae934047b1599a3f0daceb3960c8fb8c
MD5 1a33d3b48403a581233ef2547e3889d8
BLAKE2b-256 ba9a70122958c01347e58b5afe5a84afe802ef63826f6b0bdd7300196919f698

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 39707004596d80ca0f4b5063da3e81f550e3b5d5a170dd32abc613ec87987403
MD5 6b6a89bb975012e8a02fabee673c8a5b
BLAKE2b-256 a0a54d8f27e3f96311ed7bba5a90b226253e58b2209da12da8ec30f9ce475e6d

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f55f4e33a8e1fc0614cfbbcd692e5638002d3c32a511d094bf400cddf1d086aa
MD5 98e7ace81e22a6b11d78b11d83dae184
BLAKE2b-256 f0e8bdcbb4338f10929bbf6ab55ab87bf45e79a1002f51d62e993e7c36526326

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 9bc28ee45658b0cdf653ecbf99e88d6564c1922eacd63b64cf341a6830c5b8b4
MD5 4faa4f314fe66e9bab02bf8cfad4b211
BLAKE2b-256 fdd05bd5ffb52bc82c9083c599e8652a462c7088ab95c8f9c2ad129f20447e93

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp311-none-win32.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp311-none-win32.whl
Algorithm Hash digest
SHA256 dac1b6ed84eedc7cf39b7804d9ac3b9498e0a1e1878f1f268ec0025a9d31944a
MD5 75d9266667bab00dbb5f036f84fe85af
BLAKE2b-256 997a36f9cd3520f3e199035cee926cae0cf5329d13cf928bcff4fb6bc6657657

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d9f7bc96d31b6d4e3c59c85c01c9df6b77245386ce32a54b2cfbe008524d9bc2
MD5 d026a4e895a36bb54041d1b271f52d60
BLAKE2b-256 fc59c6017a6ff4fefb7b40d517e1e7cec6a8bfc8e11b553daf949f0d75d86c09

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 7f4549371229c622cf01122a287b03e6f7bc66886dda3be3e3315a3926951d18
MD5 b05fe04e5e41c3046bad5823c1f1359f
BLAKE2b-256 7f90ecd48e11b348087c7ca9b07f6b62fa679a0badd9c46dd15be815a1424516

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 f9e9534b42233157238bc0d24adbbe2d0c7c069e0a9642233cc9cc5daccef396
MD5 e1ce8a8951c18a4675316203077eb616
BLAKE2b-256 2f21e93e86a7278630b6821605aa6ec367f9a0c4384e8fa5bbcd42ad0e5e8692

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 af9f3dd127259dae6ca8ee789d0174ac0793f5caf1b0e6256702b2d24b3c4592
MD5 c652f249a68465a2303793c726660f32
BLAKE2b-256 2422321375209d010169059658e53c397b91e8ae278a8574c8af4b98aec0108f

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp311-cp311-manylinux_2_28_armv7l.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp311-cp311-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 23ae688840bdd071aef3f6ce55b88258909befcde8da116cbdc829e8bad3b9c6
MD5 3ed373342d29ca1127b92c8ce97f8984
BLAKE2b-256 812bf42d698e9cc059eae9a40690566f0268388091d0273f074b1f8372265e6c

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0e82a62a4be74d0c843fad7b3fdfd013bd9e6975a2496fceb8d93151048e5936
MD5 b4d875755f0124f7f33fccb542c8e5dd
BLAKE2b-256 b405be50699dc6b4796038e2827aec810fa24f30f25fd51c45ee5bbb646b6721

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ce6dfcda00e388016907058ebdc0f7989f84fa693202e24796705dce0273df6d
MD5 7ea46d17e0cb77e6b8d6022c3e69a5c5
BLAKE2b-256 ed1756ba6d0b78070b0a3c9406fecf9cb45942dc6d688ca2c3f07049b2d6edef

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1c7e6c2270a9ab185f3b60f7789a1ae9d276073d0c316af31125a64330f52f3b
MD5 cbcb2dd65db4e1a0c699d74bf2b4519e
BLAKE2b-256 a7e93f7633ca3b7c1d101749f00b1aa91cc8636956c92ad3cc4f29eac8fdf171

See more details on using hashes here.

Provenance

File details

Details for the file icechunk-0.1.0a2-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for icechunk-0.1.0a2-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5df88bf17bff9d3ab0a3594aee0d6d39817c585a7b6650a79d8c135e0a858599
MD5 8eb8741c0e014a91aa6061895d534ee1
BLAKE2b-256 82d8d8fa7613815adc1d9fcd0cc542460455e679983575f1088518069eaac4bd

See more details on using hashes here.

Provenance

Supported by

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