Reading and Writing
Reading Zarr arrays is reasonably well supported. Writing is available, but is more limited. Both aspects are under active development.
Stores
| Store Type | Status (reading / writing) |
Notes |
|---|---|---|
FilesystemStore |
✔ / ✔ | |
S3Store |
✔ / ❌ | Read more in the S3 vignette |
Data Types
Currently there is only support for reading and writing a subset of the possible datatypes that can be found in a Zarr array. In some instances there are also limitations on the datatypes natively supported by R, requiring conversion from the Zarr datatype. The table below summarises the current status of datatype support. It will be updated as progress is made.
| Zarr Data Type | Status (reading / writing) |
Notes |
|---|---|---|
boolean |
✔ / ✔ | (via grumpy) |
int8 |
✔ / ✔ | (via grumpy) |
uint8 |
✔ / ✔ | (via grumpy) |
int16 |
✔ / ✔ | (via grumpy) |
uint16 |
✔ / ✔ | (via grumpy) |
int32 |
✔ / ✔ | (via grumpy) |
uint32 |
✔ / ✔ | (via grumpy) |
int64 |
✔ / ✔ | (via grumpy) |
uint64 |
✔ / ✔ | (via grumpy) |
half / float16
|
✔ / ❌ | (via grumpy) |
single / float32
|
✔ / ✔ | (via grumpy) |
double / float64
|
✔ / ✔ | (via grumpy) |
bfloat16 |
✔ / ❌ | |
complex |
❌ / ❌ | |
timedelta |
❌ / ❌ | |
datetime |
❌ / ❌ | |
V2 string
|
✔ / ✔ | (via grumpy) |
V3 null_terminated_bytes
|
✔ / ✔ | (via grumpy) |
V2 Unicode
|
✔ / ✔ | (via grumpy) |
V3 fixed_length_utf32
|
✔ / ✔ | (via grumpy) |
void * |
❌ / ❌ | |
| V2 structured data types | ✔ / ❌ | (via grumpy) |
| V3 structured data types | ✔ / ❌ | This type is superseded by V3 struct data types.and the specification says implementation MUST NOT implement writing. (via grumpy) |
| V3 struct data types | ✔ / ❌ | (via grumpy) |
Scalars can only be written via update_zarr_array().
write_zarr_array() requires x to be an array
so it can only write arrays with a single dimensions of length 1 (which
behave mostly like a scalar in R).
Codecs
Compression codecs
| Library | Status (reading / writing) |
Notes |
|---|---|---|
zlib / gzip |
✔ / ✔ | |
bzip2 |
✔ / ✔ | |
blosc |
✔ / ✔ | |
LZMA |
✔ / ✔ | |
LZ4 |
✔ / ✔ | |
Zstd |
✔ / ✔ |
Please open an issue if support for a required compression codec is missing.
Other codecs
| Codec | Status (reading / writing) |
Notes |
|---|---|---|
endian |
✔ / ❌ | (via grumpy) |
transpose |
✔ / ✔ | |
VLen-UTF8 |
✔ / ✔ * | Through using the data_type = "string" argument in
write_zarr_array()
|
sharding_indexed |
✔ / ❌ |