VirtualiZarr creates virtual Zarr stores for cloud-friendly access to archival data, using familiar xarray syntax.
VirtualiZarr (pronounced like "virtualize" but more piratey) grew out of discussions on the kerchunk repository, and is an attempt to provide the game-changing power of kerchunk in a zarr-native way, and with a familiar array-like API.
You now have a choice between using VirtualiZarr and Kerchunk: VirtualiZarr provides almost all the same features as Kerchunk.
Please see the documentation
VirtualiZarr version 1 (mostly) achieves feature parity with kerchunk's logic for combining datasets, providing an easier way to manipulate kerchunk references in memory and generate kerchunk reference files on disk.
Future VirtualiZarr development will focus on generalizing and upstreaming useful concepts into the Zarr specification, the Zarr-Python library, Xarray, and possibly some new packages.
We have a lot of ideas, including:
- Zarr v3 support
- Zarr-native on-disk chunk manifest format
- "Virtual concatenation" of separate Zarr arrays
- ManifestArrays as an intermediate layer in-memory in Zarr-Python
- Separating CF-related Codecs from xarray
- Generating references without kerchunk
If you see other opportunities then we would love to hear your ideas!
This package was originally developed by Tom Nicholas whilst working at [C]Worthy, who deserve credit for allowing him to prioritise a generalizable open-source solution to the dataset virtualization problem. VirtualiZarr is now a community-owned multi-stakeholder project.
Apache 2.0