#storage #store #zarr #zarrs #icechunk

zarrs_icechunk

icechunk store support for the zarrs crate

8 releases

0.2.1 Mar 10, 2025
0.2.0 Feb 20, 2025
0.1.1 Feb 8, 2025
0.1.0 Jan 31, 2025
0.1.0-alpha.0 Oct 17, 2024

#2267 in Encoding

Download history 151/week @ 2024-11-27 12/week @ 2024-12-04 3/week @ 2024-12-11 127/week @ 2025-01-01 21/week @ 2025-01-08 113/week @ 2025-01-22 115/week @ 2025-01-29 140/week @ 2025-02-05 10/week @ 2025-02-12 128/week @ 2025-02-19 8/week @ 2025-02-26 94/week @ 2025-03-05 34/week @ 2025-03-12

267 downloads per month

MIT/Apache

38KB
287 lines

zarrs_icechunk

Latest Version icechunk 0.2 zarrs_icechunk documentation msrv build

icechunk store support for the zarrs Rust crate.

use icechunk::{Repository, RepositoryConfig, repository::VersionInfo};
use zarrs_icechunk::AsyncIcechunkStore;

// Create an icechunk repo
let storage = icechunk::new_in_memory_storage()?;
let config = RepositoryConfig::default();
let repo = Repository::create(Some(config), storage, HashMap::new()).await?;

// Do some array/metadata manipulation with zarrs, then commit a snapshot
let session = repo.writable_session("main").await?;
let store = Arc::new(AsyncIcechunkStore::new(session));
let array: Array<AsyncIcechunkStore> = ...;
let snapshot0 = store.session().write().await.commit("Initial commit", None).await?;

// Do some more array/metadata manipulation, then commit another snapshot
let session = repo.writable_session("main").await?;
let store = Arc::new(AsyncIcechunkStore::new(session));
let array: Array<AsyncIcechunkStore> = ...;
let snapshot1 = store.session().write().await.commit("Update data", None).await?;

// Checkout the first snapshot
let session = repo.readonly_session(&VersionInfo::SnapshotId(snapshot0)).await?;
let store = Arc::new(AsyncIcechunkStore::new(session));
let array: Array<AsyncIcechunkStore> = ...;

Version Compatibility Matrix

See doc/version_compatibility_matrix.md.

Licence

zarrs_icechunk is licensed under either of

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Dependencies

~52MB
~770K SLoC