Expand description
A transactional storage engine for Zarr.
Icechunk provides version-controlled, transactional access to Zarr data on cloud object storage. It adds a layer of indirection between Zarr keys and on-disk storage, enabling:
- Serializable isolation - Reads are isolated from concurrent writes and always use a committed snapshot. Writes are committed atomically and never partially visible.
- Time travel - Previous snapshots remain accessible after new ones are written.
- Version control - Repositories support branches (mutable) and tags (immutable) that reference snapshots.
§Core concepts
A repository contains a Zarr hierarchy (groups and arrays) with full version history.
Each update creates a new snapshot with a unique ID. Branches are mutable
references to snapshots (like Git branches), while tags are immutable references
(like Git tags). The default branch is main.
§Key types
Repository- Handle to a versioned data storesession::Session- Transaction context for reading/writing dataStore- Zarr-compatible key-value interface backed by a Session
§Architecture
Repository ─creates─► Session
├── ChangeSet (uncommitted modifications)
└── AssetManager (typed I/O with caching)
└── Storage (S3, GCS, Azure, local, etc.)Re-exports§
pub use config::ObjectStoreConfig;pub use config::RepositoryConfig;pub use repository::Repository;pub use store::Store;pub use icechunk_format as format;
Modules§
- asset_
manager - Typed I/O layer for Icechunk assets.
- change_
set - Tracks uncommitted modifications during a session.
- cli
- Command-line interface for Icechunk operations.
- compat
- config
- Configuration types for repositories and storage.
- conflicts
- Detection and resolution for concurrent writes.
- diff
- display
- error
- Generic error wrapper with span tracing.
- feature_
flags - inspect
- Debugging utilities for examining repository state.
- migrations
- Upgrade repositories between Icechunk format versions.
- ops
- Repository maintenance operations.
- refs
- Branch and tag management.
- repository
- The entry point for Icechunk operations.
- session
- The transaction context for reading and writing data.
- storage
- Object store abstraction layer.
- store
- Zarr-compatible key-value interface.
- virtual_
chunks - References to external data sources.
Structs§
Traits§
- Storage
- Implementations are free to assume files are never overwritten.
Functions§
- new_
in_ memory_ storage - new_
local_ filesystem_ storage - new_
s3_ object_ store_ storage - new_
s3_ storage - user_
agent - Returns the user-agent string for icechunk HTTP requests.