Skip to content

Structured data type (legacy alias) ​

The "structured" data type name is a legacy alias for "struct".

This alias exists for backwards compatibility with Zarr v3 arrays created before the struct data type was formally registered.

Data type name ​

The data type is specified as "structured".

Read-only alias ​

Implementations MUST be able to read arrays whose metadata uses "structured" as the data type name.

Implementations MUST NOT write new arrays using "structured". New arrays should use "struct" instead.

Legacy metadata ​

Legacy "structured" arrays may have metadata that differs from the current "struct" specification. Implementations supporting "structured" MUST handle these legacy forms.

Tuple-based field definitions ​

Legacy "structured" arrays define fields as 2-element arrays [field_name, field_dtype]. For example:

json
{
  "fields": [
    ["x", "float32"],
    ["y", "float32"]
  ]
}

Missing endian configuration ​

Arrays where the bytes codec has no endian configuration (i.e. {"name": "bytes"} with no configuration key) MUST be treated as little-endian. Implementations SHOULD warn when endian is absent for structured types with multi-byte numeric fields.

Base64-encoded fill values ​

Existing arrays may encode the fill value as a base64-encoded string of the raw packed bytes (e.g. "AAAAAAAAAAA=" for 8 zero bytes). The byte order of these packed bytes follows the endian parameter of the bytes codec, or little-endian if endian is absent.

Change log ​

No changes yet.

Current maintainers ​