Changelog
Source:NEWS.md
zarr 1.0.1
CRAN release: 2026-11-08
Maintenance release.
API
- Fixed bad return value in
as_zarr(location = my_zarr_group). As per the API, the newzarr_arrayshould be returned - corrected. - The
auto_chunk()function has been deprecated; thechunk_lengthoption inZarr.optionsis now useless. Useoptimal_chunking()instead.
Code
- The fill_value for the string data type has been set to a default value of “missing”, to align with the type specification in the Zarr spec.
-
zarr_convention_ref$set()now strictly appliesnodeformat when using anuriargument. - Better convention identification, following the zarr-conventions spec.
zarr 1.0.0
CRAN release: 2026-10-23
This is the first stable release. This major release contains API breaking changes and the dependency on R has bumped to version 4.4.
Code has been refactored to make it more agile and less error-prone. Two major changes have been implemented:
- The
zarr_storeclass is no longer used in the public-facing API. Most store-oriented tasks are now handled through thezarrclass, including creating a new store. - Instantiating a
zarr_arraywill create it in the store if it does not yet exist, and attach itself to its parent, usually azarr_groupbut it could also be azarrinstance in the case of a single-array store.
These changes impact the signature of several methods:
-
zarr$new()has several new arguments following the firststoreargument. All additional arguments are optional so existing code will remain functional. Thestoreargument has additional functionality. -
zarr_group$new()andzarr_array$new()no longer have thestoreargument. - Several other methods in these three classes have related signature changes, but these changes are not relevant for end users or application developers of this package.
Other new features:
- Writing a
zarr_arrayby indices can use[<-.zarr_array. - Can create a single array store.
- New
zarr$save_to()method can save azarrobject to a new store. This is handy to save a memory store to disk, to convert a v.2 store to a v.3 store, or to get a local copy of a remote store, among other uses. Parallel reads from HTTP and S3 stores speeds up the copying. - New
zarr_array$details()method will produce a named character vector with a summary of the array. - New field
zarrin classzarr_nodeto retrieve thezarrinstance that manages the node. - Zarr v.2 filters as defined in Python’s numcodecs are supported.
- Printing to the console will use the
clipackage when installed. The theme used can be modified by the user. - User options can be saved to the user config directory using the
save_options()function. They will be automatically loaded in all future sessions. Functionreset_options()will reset the options to their default values. - The
array_builderclass has a fielddata_type_from_storage.modethat can make a Zarr data type from an R storage mode. - The separation between classes
chunkingandchunk_grid_regularis more robust. A newgridfield will retrieve the chunk grid. The chunk grid will be printed to the console for arrays and the chunking scheme. - The
glyphprivate field has moved fromzarr_arraytozarr_nodesuch thatzarr_groupcan have the same flexibility when printing.
Minor changes:
-
zarr.jsonwrites arrays forshapeandchunk_shapefor 1D axes. - JSON writes use full numeric precision.
-
refconvention uses released version v2.0.0.
zarr 0.5.1
CRAN release: 2026-09-08
- Chunk management improved, size-limited cache with a LRU eviction scheme. The size of the cache (per array) can be controlled with the session option
chunk_cache_bytes. - New
zarr_array$raw_readfield can be set to control conversion of the Zarr arrayfill_valueto R’sNAupon reading (FALSE, default) or to skip the conversion (TRUE) for faster loading when data is known not to have fill values or when these are managed at the application level. - Fix tests and example that use suggested package to run conditionally.
zarr 0.5.0
CRAN release: 2026-08-30
- AWS S3 store access added for reading and, with appropriate authentication, writing. The function
s3_list_dir()can be used to walk the directory listing of an S3 bucket to locate Zarr stores. - New
zarr_array::resize()method with which arrays can be resized, growing or shrinking across all dimensions simultaneously, including on the lower end of the dimensions. When changing the “low” side of the dimensions, which is always by full chunks, the indexing of all data changes to use the new origin. - New
zarr_array::promote()method which adds a dimension to the array. - New
zarr_objectbase class for name and attribute management. -
dirtyfield can be explicitly set on any node to force writing of the metadata to the store. -
chunk_key_encodingis automatically set in array metadata. - New
optimal_chunking()function to determine optimal chunking for an array, optionally applying different weights to dimensions or groups of dimensions. - Better support for scalar arrays. Scalar arrays can now be constructed by the
array_builderclass and written to like regular arrays. - Testing expanded.
- Documentation expanded and updated.
zarr 0.4.2
CRAN release: 2026-07-11
-
zarr_node$post_open()method allows for processing that requires the Zarr hierarchy to be in place. - Dynamically set a node in a Zarr hierarchy.
-
zarr_node$relative_path()method retrieves the relative path from the node to another node or a path string.zarr_node$absolute_path()turns a relative path starting from the current node into an absolute path.walk_path()traverses the Zarr hierarchy from the current node to a target node using relative node names, returning the requested node. - Set metadata on a node in a memory store.
- Convention classes are now coded as attribute factories.
- Zarr package options can now be retrieved and modified with the
zarr_options()function. - Compute optimal chunking sizes from array shape when not set explicitly.
- In
as_zarr(), small arrays are not compressed. This is controlled by theZarr.options$min_compresssetting. - Fix key listing in memory stores.
zarr 0.4.1
CRAN release: 2026-06-14
- Hierarchy can now also be printed from any group. Zarr arrays from domain packages may use alternative glyphs.
- New
attribute()method forzarr_groupandzarr_arrayinstances. - Attributes can be nested by specifying a compound path when adding. JSON array attributes can be appended. JSON arrays can be deleted over compound paths, including JSON arrays.
- Attributes article updated.
zarr 0.4.0
CRAN release: 2026-05-28
- Reading of sharded Zarr stores is now supported.
- The Zarr-registered “string” data type, an extension to the core specification, is now supported. This uses the “vlen-utf8” codec, also a registered extension to the core specification. For Zarr v.2 stores, this corresponds to the “|O” data type; the “<U*” data type is also supported, using a mocked-up “ucs-4” codec (it is not a true codec or Zarr v.2 filter) to provide the mandatory “array -> bytes” codec. This means that you can now read Zarr arrays that have character data. You can also create new Zarr arrays with character data.
- Nested attributes print better to the console.
-
zarr_conventions()function returnsdata.frameof supported conventions. - Ref convention code updated.
- Malformed “NaN”, “Infinity” and “-Infinity” in metadata solved.
- Better testing of fill values.
- Fixed deeply nested consolidated metadata.
- Fixed handling of scalar arrays.
- R dependency bumped to 4.2
- Using Rcpp for performance bottlenecks, using
futurefor optional parallel processing of chunks and shards.
zarr 0.3.0
CRAN release: 2026-04-18
- Extensible domain and convention mechanisms added, following ZEP0004. This enables developers to extend this Zarr implementation with domain-specific interfaces.
- Metadata is now writable as a complete object - expert use only.
- Fixed listing of keys in memory stores.
- Expanded documentation.
zarr 0.2.0
CRAN release: 2026-02-11
- Zarr version 2 stores can be read. Data types supported are those also included in the v.3 core specification. The
compressioncodec has to be one of those supported by the v.3 core specification orzstd. Filters are not yet supported. - HTTP stores can be read but only for Zarr v.3 and v.2 single-array stores and Zarr v.2 stores with consolidated metadata present in the root group of the Zarr store.
- Chunk key encoding from v.2 and “default” and “v2” from v.3 supported.
- The
bloscpackage is now imported as it is the default compression codec. -
zstdcompression codec added. - Fixed reading
integer64data.