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.0a1.tar.gz (1.0 MB view details)

Uploaded Source

Built Distributions

icechunk-0.1.0a1-cp312-none-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.12 Windows x86-64

icechunk-0.1.0a1-cp312-none-win32.whl (4.8 MB view details)

Uploaded CPython 3.12 Windows x86

icechunk-0.1.0a1-cp312-cp312-musllinux_1_2_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

icechunk-0.1.0a1-cp312-cp312-musllinux_1_2_i686.whl (7.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

icechunk-0.1.0a1-cp312-cp312-musllinux_1_2_armv7l.whl (7.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARMv7l

icechunk-0.1.0a1-cp312-cp312-musllinux_1_2_aarch64.whl (7.3 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

icechunk-0.1.0a1-cp312-cp312-manylinux_2_28_armv7l.whl (6.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARMv7l

icechunk-0.1.0a1-cp312-cp312-manylinux_2_28_aarch64.whl (7.2 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARM64

icechunk-0.1.0a1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

icechunk-0.1.0a1-cp312-cp312-macosx_11_0_arm64.whl (6.2 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

icechunk-0.1.0a1-cp312-cp312-macosx_10_12_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

icechunk-0.1.0a1-cp311-none-win_amd64.whl (5.5 MB view details)

Uploaded CPython 3.11 Windows x86-64

icechunk-0.1.0a1-cp311-none-win32.whl (4.8 MB view details)

Uploaded CPython 3.11 Windows x86

icechunk-0.1.0a1-cp311-cp311-musllinux_1_2_x86_64.whl (7.2 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

icechunk-0.1.0a1-cp311-cp311-musllinux_1_2_i686.whl (7.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

icechunk-0.1.0a1-cp311-cp311-musllinux_1_2_armv7l.whl (7.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARMv7l

icechunk-0.1.0a1-cp311-cp311-musllinux_1_2_aarch64.whl (7.3 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

icechunk-0.1.0a1-cp311-cp311-manylinux_2_28_armv7l.whl (6.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARMv7l

icechunk-0.1.0a1-cp311-cp311-manylinux_2_28_aarch64.whl (7.2 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

icechunk-0.1.0a1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.1 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

icechunk-0.1.0a1-cp311-cp311-macosx_11_0_arm64.whl (6.2 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

icechunk-0.1.0a1-cp311-cp311-macosx_10_12_x86_64.whl (6.2 MB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: icechunk-0.1.0a1.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.0a1.tar.gz
Algorithm Hash digest
SHA256 fc61f8e3df2ca1e5936a3d4e61dd3eb6cc7714548238366b4b2f39a6cc3ab68d
MD5 0eb3a4d5d3f8e6a002532f896185a188
BLAKE2b-256 f8744aceb77404de86960a56c40ade6e85bd186a184f4895f1864a8bb2ffb90f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 784e8e64c4e901b1feae6e9a90a81ee640ec9441acf227d24f52cdae73aea983
MD5 6e23adb2a815a9d68cfd38cbcd6cf461
BLAKE2b-256 ac56bd70441c689bc519f3c1837d18b6b65647e13af4b57f7d569436855c56e1

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp312-none-win32.whl
Algorithm Hash digest
SHA256 d9432c982a18370379901c12899f659425298bc9f1680c525263f9169ae262c5
MD5 fea502a82651ab9b46c9dda551352fe6
BLAKE2b-256 6975394f961a63d2652a2321983962db9005a38b462b7b07aa8f82ead57612e8

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0cc7e67259567ea1e04658fe9c226bae15a3339de83a70e76b3121b8b37691b4
MD5 545f561032371e2c713bd27f31190737
BLAKE2b-256 dd880f8f9d522255a1740150121aded6648dd3fd0506ec9e6ab0033e958f43c4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 aece985289fc597b88c424e0f796c094d6b61c61107b59e1c33b184f12162e8b
MD5 c19f3fa9b17e44a551e794cdf8e6fa33
BLAKE2b-256 f9e7ca365b4c1eea77edb77138f37e32f9b10f5dcb5be13c0d80079ffbaf26b9

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 666643d3721375a852b137cc4dd3053de727d511328746d23e201b60fa2a01b9
MD5 abfa03a56d49e849b27313d42f91cdaf
BLAKE2b-256 9361ff7b007e7dbb08b8fc143948962d9a34ff9cf4161ff2ce3871b685b43e56

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bf8940bd1ed4935c6d8ad70d35dacad97a64160d32255ede245150131f0ef389
MD5 ab1b87120ae47668150cbc202ad2155e
BLAKE2b-256 b1b37cb6af884e706a66aa6be95f983c97016103c49f8de5c832d673cda81de3

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp312-cp312-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 d4bc948b282c53b572927edabb11b7596201991f475be1836ab3da41a37613c9
MD5 53c7dddfe3162ca3f479c3f3ef6f9402
BLAKE2b-256 d1d32cb519d45fc7a5c52c3ff1019c16d8d64f3b4b48281b4ed847863b064f44

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 11014e4e73362652d167b618a0476f02126373bbea7d23887d4ba9986ccb76a0
MD5 670b25f2b7ae513917c422c9e42d7c4c
BLAKE2b-256 ad026f21c765a245d10da4c2d3631c2b5a85e8e3bc5a58a8caa93145b50c41b1

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 048aca197f4dc583998a223c9401dd8969a9afb7c2c2ae1d33aceeb64645cc0a
MD5 0e0e04b8e0a462ff4ec65d2ccdd0cf86
BLAKE2b-256 47ce4fb4d5eb86996bebdb09f7b27f2f8817d2a98356e92c56fadc149de88f5e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55eb79fdbb2c90e57022af251632dcde36f1041ad96d28ce19a2b5152a9de450
MD5 2f0e222d35c73a3378f541eafd3a810c
BLAKE2b-256 36baeac2b35a7b2277fc18257bc34f9aadc0833235a92287097d080e74e1c02b

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 816329c2c6cf9343ee790424d9876e404afe336b6ee0d8a047b0a774f857a664
MD5 4bcbf54cbc952e96d0983a475751557d
BLAKE2b-256 7c93816441d84a2856dcd1c8a11d9ce5815b3920ee7a88c33406d268c6df86ab

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 4ec766c96bbf7e5a6494f25649b264adc1704cd32d5f5f11aa29290df79f381d
MD5 bbd06f09b227e666692b43bb6f771b8d
BLAKE2b-256 bb9fcbd484679f3ae2dff84b169c9a089e0b6325da76d7d09463ae9e5da2cdcf

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp311-none-win32.whl
Algorithm Hash digest
SHA256 6965f1fd9a74f73fb9724f7da920c67454d6aad67ce59f1c4860801805b3da92
MD5 1e7035419dbb9905cb5b4098041fadd3
BLAKE2b-256 7a38302d0c46d8b4a57c3513790877e44176ed5953c5bfbcddbc6c19d499a394

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f826d0ac314b8bfcd019d847b3389bcbd2cc8f42cff390477905944ab18bda2a
MD5 05ad7acea240f8418a7c93927b8a14ec
BLAKE2b-256 9cc50aefa7b0b28014b61b0c95c550f71550c8e812767bff268e0646138cfe64

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 7fd87560e06d1c9b34ae695fb0292761aa0f901555fcdf82b255b66518356001
MD5 ab153235eec9ed988d788e1e0c23a3c6
BLAKE2b-256 305b39a75475127ed9daeb53286b70ddeb49647c1de0236c9f84e69e2fb3431c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 df70e3d34bb9d5774c3a20d016ad1e356ce8be9424465b7405fd39cbaf36af41
MD5 d8e7762aba7cfc8c8d5d32e95418a69e
BLAKE2b-256 5a73498a54df606bd0ad0b242877f63734cac580c0669c48b9bc3274c21556d4

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 545f9549e68a7283b9775ef736cb3714efe108ba7d347a3221e11497a5c6b701
MD5 354187bdd99e952b63220c5e59cf3997
BLAKE2b-256 d604cbca1086661f8d049d0c1a43a9b59eeb54e65445c786b0545dfef19e2a17

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp311-cp311-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 aa1d34ed9918bf9b8fdaffd851d7524c6dfd45893d8a22cfdb3235436ec28079
MD5 dd6daca3d22abeead991fbe96877c316
BLAKE2b-256 4df1eecb665c155f096880327fb33a9805364e57d051ee638c584df2dea6bb65

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 66ff25a4dcb1914eed1fbcf762357fc490302feb1596fa77a28f051e441e8ac1
MD5 e0971af10b51cd3c34b5772ec56d0100
BLAKE2b-256 aa10d67f1b0e300cebfc604b3867b18c7da42b8cc857be60b66f3e2481137cf1

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0843da26848f7c3747d7a235757729ac88d1001034a5c990ef780028e05292a7
MD5 a17174e7abd102a51eaae5754c8bbde3
BLAKE2b-256 d22061ae14d35c46e2f33c8ae989307e04b912b8d9149161e4b2035913622824

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b12a0ab44368698794454d7d05a3aff6c51f747be916ffb868f4407f9b8d250a
MD5 f6b309838f6ec4a474dd44c3d97ef7b4
BLAKE2b-256 b7908239c8d0626f8dc4743c81912232aa241b094ce6f57004ed2a7adbc3c7aa

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for icechunk-0.1.0a1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e660e95fae85fd8d383ca76b2920a6aab3804e2e27b2692da0bc6202c5563f91
MD5 9f3a7fb1b2517b08e7dafebf8c9195a1
BLAKE2b-256 b45eb30aedfbbf18b15b72a94d762a47b6d75a5e4a2778d97452fd8d048a8b7d

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