libzarr
Header-only C++17 Zarr v2/v3, WASM-compatible
Loading...
Searching...
No Matches
Public API surface

‍Generated by tools/api_inventory.py — do not edit by hand. Lists every symbol in namespace zarr (and zarr::v2 / zarr::v3) that is not inside a detail* namespace. This is the frozen 1.0 contract; a change here is an API change (see COMPATIBILITY.md).

Version and feature macros

  • LIBZARR_VERSION_MAJOR, LIBZARR_VERSION_MINOR, LIBZARR_VERSION_PATCH
  • LIBZARR_HAS_ZLIB, LIBZARR_HAS_BLOSC, LIBZARR_HAS_ZSTD — set when the matching codec is compiled in; a codec header #errors without its flag.
  • LIBZARR_EXTERNAL_JSON — use an external nlohmann/json instead of the vendored copy.
  • LIBZARR_ZSTD_DECODE_ONLY — with zstd, omit the compress side (reader-only build; encoding a zstd chunk throws). Lets a consumer link zstd's decompress-only build.
  • LIBZARR_DEPRECATED(msg) — marks a symbol deprecated (see COMPATIBILITY.md).

<tt>types.hpp</tt>

<tt>namespace zarr</tt>

  • enum class DType : std::uint8_t { boolean, int8, int16, int32, int64, uint8, uint16, uint32, uint64, float16, float32, float64, complex64, complex128, raw }
  • enum class ZarrFormat : std::uint8_t { v2, v3 }
  • using Bytes = std::vector<std::uint8_t>
  • class error : std::runtime_error
    • using std::runtime_error::runtime_error
  • struct DataType
    • DType kind
    • std::uint32_t itemsize
    • [[nodiscard]] static constexpr DataType of(DType kind)
    • [[nodiscard]] static constexpr DataType raw_bytes(std::uint32_t size)
    • [[nodiscard]] friend constexpr bool operator==(DataType a, DataType b)
    • [[nodiscard]] friend constexpr bool operator!=(DataType a, DataType b)
  • [[nodiscard]] constexpr bool is_complex(DType kind)
  • [[nodiscard]] constexpr bool is_float(DType kind)
  • [[nodiscard]] constexpr bool is_signed_int(DType kind)
  • [[nodiscard]] constexpr bool is_unsigned_int(DType kind)
  • [[nodiscard]] constexpr std::uint32_t fixed_itemsize(DType kind)

<tt>store.hpp</tt>

<tt>namespace zarr</tt>

  • class MemoryStore : Store
    • [[nodiscard]] std::optional<Bytes> read(std::string_view key) override
    • void write(std::string_view key, Bytes value) override
    • [[nodiscard]] std::optional<std::uint64_t> size(std::string_view key) override
    • [[nodiscard]] bool exists(std::string_view key) override
    • void erase(std::string_view key) override
    • [[nodiscard]] std::vector<std::string> list_prefix(std::string_view prefix) override
    • [[nodiscard]] DirListing list_dir(std::string_view prefix) override
    • [[nodiscard]] std::size_t key_count() const
  • class Store
    • [[nodiscard]] virtual std::optional<Bytes> read(std::string_view key) = 0
    • [[nodiscard]] virtual std::optional<Bytes> read_range(std::string_view key, ByteRange range)
    • [[nodiscard]] virtual std::optional<std::uint64_t> size(std::string_view key)
    • [[nodiscard]] virtual std::vector<std::optional<Bytes>> read_many(const std::vector<ReadRequest>& requests)
    • virtual void write(std::string_view key, Bytes value) = 0
    • [[nodiscard]] virtual bool exists(std::string_view key) = 0
    • virtual void erase(std::string_view key) = 0
    • virtual void flush()
    • [[nodiscard]] virtual std::vector<std::string> list_prefix(std::string_view prefix) = 0
    • [[nodiscard]] virtual DirListing list_dir(std::string_view prefix) = 0
  • struct ByteRange
    • enum class Kind : std::uint8_t { full, slice, suffix }
    • Kind kind
    • std::uint64_t offset
    • std::uint64_t length
    • [[nodiscard]] static constexpr ByteRange full()
    • [[nodiscard]] static constexpr ByteRange slice(std::uint64_t offset, std::uint64_t length)
    • [[nodiscard]] static constexpr ByteRange suffix(std::uint64_t length)
  • struct DirListing
    • std::vector<std::string> keys
    • std::vector<std::string> prefixes
  • struct ReadRequest
    • std::string_view key
    • ByteRange range = ByteRange::full()

<tt>metadata.hpp</tt>

<tt>namespace zarr</tt>

  • enum class ChunkKeyKind : std::uint8_t { v2, v3_default }
  • using json = nlohmann::json
  • struct ArrayMeta
    • ZarrFormat format
    • std::vector<std::uint64_t> shape
    • std::vector<std::uint64_t> chunk_shape
    • DataType dtype
    • std::optional<Bytes> fill
    • ChunkKeyKind key_encoding
    • char dimension_separator
    • json dimension_names
    • std::vector<CodecSpec> codecs
    • std::vector<ShardLevel> shard_levels
    • json attributes = json::object()
    • [[nodiscard]] std::uint64_t element_count() const
    • [[nodiscard]] std::uint64_t chunk_element_count() const
    • [[nodiscard]] std::vector<std::uint64_t> grid_shape() const
  • struct CodecSpec
    • std::string name
    • json configuration = json::object()
  • struct OpenOptions
    • bool lenient
  • struct ShardLevel
    • std::vector<std::uint64_t> shard_shape
    • std::vector<CodecSpec> index_codecs
    • bool index_at_end
  • [[nodiscard]] Bytes canonical_json_bytes(const json& j)

<tt>namespace zarr::codec</tt>

  • [[nodiscard]] CodecSpec blosc(const std::string& cname = "", int clevel = 5, const std::string& shuffle = "")
  • [[nodiscard]] CodecSpec crc32c()
  • [[nodiscard]] CodecSpec gzip(int level = 5)
  • [[nodiscard]] CodecSpec shuffle(int elementsize = 0)
  • [[nodiscard]] CodecSpec zlib(int level = 5)
  • [[nodiscard]] CodecSpec zstd(int level = 0, bool checksum = false)

<tt>codecs.hpp</tt>

<tt>namespace zarr</tt>

  • class CodecPipeline
    • [[nodiscard]] static CodecPipeline resolve(const ArrayMeta& meta)
    • [[nodiscard]] std::uint64_t decoded_chunk_bytes() const
    • [[nodiscard]] bool is_identity() const
    • [[nodiscard]] bool supports_partial_read() const
    • [[nodiscard]] Bytes encode(Bytes chunk) const
    • [[nodiscard]] Bytes decode_range(Bytes raw) const
    • [[nodiscard]] Bytes decode(Bytes stored) const

<tt>array.hpp</tt>

<tt>namespace zarr</tt>

  • class Array
    • static Array create(std::shared_ptr<Store> store, const std::string& path, const ArraySpec& spec)
    • [[nodiscard]] static Array open(std::shared_ptr<Store> store, const std::string& path, OpenOptions options = {})
    • [[nodiscard]] const ArrayMeta& meta() const
    • [[nodiscard]] const std::string& path() const
    • [[nodiscard]] std::vector<std::uint64_t> grid_shape() const
    • [[nodiscard]] std::uint64_t nbytes() const
    • [[nodiscard]] std::uint64_t chunk_nbytes() const
    • [[nodiscard]] Bytes read_chunk(const std::vector<std::uint64_t>& index) const
    • void write_chunk(const std::vector<std::uint64_t>& index, const void* data, std::size_t size)
    • [[nodiscard]] Bytes read_chunk_range(const std::vector<std::uint64_t>& index, std::uint64_t element_offset, std::uint64_t element_count) const
    • void read(void* dst, std::size_t size) const
    • void write(const void* src, std::size_t size)
    • void read_region(const std::vector<std::uint64_t>& origin, const std::vector<std::uint64_t>& shape, void* dst, std::size_t size) const
    • void write_region(const std::vector<std::uint64_t>& origin, const std::vector<std::uint64_t>& shape, const void* src, std::size_t size)
    • [[nodiscard]] const json& attributes() const
    • void set_attributes(json attributes)
    • [[nodiscard]] std::string chunk_store_key(const std::vector<std::uint64_t>& index) const
  • struct ArraySpec
    • ZarrFormat format
    • std::vector<std::uint64_t> shape
    • std::vector<std::uint64_t> chunks
    • DataType dtype
    • std::vector<CodecSpec> codecs
    • std::optional<Bytes> fill
    • json attributes = json::object()
    • char dimension_separator
    • json dimension_names
    • std::vector<std::uint64_t> shards

<tt>group.hpp</tt>

<tt>namespace zarr</tt>

  • class Group
    • static Group create(std::shared_ptr<Store> store, const std::string& path = "", ZarrFormat format = ZarrFormat::v2)
    • [[nodiscard]] static Group open(std::shared_ptr<Store> store, const std::string& path = "", OpenOptions options = {})
    • [[nodiscard]] const std::string& path() const
    • [[nodiscard]] const json& attributes() const
    • void set_attributes(json attributes)
    • Group create_group(const std::string& name)
    • Array create_array(const std::string& name, ArraySpec spec)
    • [[nodiscard]] Group open_group(const std::string& name) const
    • [[nodiscard]] Array open_array(const std::string& name) const
    • [[nodiscard]] GroupChildren children() const
  • struct GroupChildren
    • std::vector<std::string> arrays
    • std::vector<std::string> groups

<tt>sharding.hpp</tt>

<tt>namespace zarr::shard</tt>

  • struct Extent
    • std::uint64_t offset
    • std::uint64_t nbytes
    • bool missing
  • struct Placement
    • std::string shard_key
    • std::uint64_t slot
    • std::uint64_t index_size
    • bool index_at_end
  • [[nodiscard]] Bytes pack(const ArrayMeta& meta, const std::vector<std::optional<Bytes>>& entries, std::size_t level = 0)
  • [[nodiscard]] Extent extent(const ArrayMeta& meta, const Bytes& index_bytes, std::uint64_t slot, std::size_t level = 0)
  • [[nodiscard]] Placement place(const ArrayMeta& meta, const std::string& path, const std::vector<std::uint64_t>& inner_index, std::size_t level = 0)

<tt>v2.hpp</tt>

<tt>namespace zarr::v2</tt>

  • constexpr const char* kArraySuffix
  • constexpr const char* kAttrsSuffix
  • constexpr const char* kConsolidatedKey
  • constexpr const char* kGroupSuffix
  • struct ParsedDType
    • DataType dtype
    • bool big_endian
  • [[nodiscard]] ArrayMeta parse_array_meta(const json& j, const std::string& ctx)
  • [[nodiscard]] ParsedDType parse_data_type(const std::string& text, const std::string& ctx)
  • [[nodiscard]] json emit_array_meta(const ArrayMeta& meta)
  • [[nodiscard]] json emit_group_meta()
  • [[nodiscard]] std::optional<Bytes> parse_fill(const json& v, DataType dt, const std::string& ctx)
  • [[nodiscard]] std::optional<json> read_consolidated(Store& store)
  • [[nodiscard]] std::string chunk_key(const std::vector<std::uint64_t>& index, char separator)
  • [[nodiscard]] std::string emit_data_type(DataType dt, bool big_endian)
  • [[nodiscard]] std::string meta_key(const std::string& path, const char* suffix)
  • void check_group_meta(const json& j, const std::string& ctx)
  • void consolidate(Store& store)
  • void erase_meta_key(Store& store, const std::string& key)
  • void write_meta_key(Store& store, const std::string& key, const json& value)

<tt>v3.hpp</tt>

<tt>namespace zarr::v3</tt>

  • constexpr const char* kMetaKey
  • struct GroupMeta
    • json attributes = json::object()
    • std::optional<json> consolidated
  • [[nodiscard]] ArrayMeta parse_array_meta(const json& j, const std::string& ctx, bool lenient = false)
  • [[nodiscard]] DataType parse_data_type(const json& v, const std::string& ctx)
  • [[nodiscard]] GroupMeta parse_group_meta(const json& j, const std::string& ctx, bool lenient = false)
  • [[nodiscard]] json emit_array_meta(const ArrayMeta& meta)
  • [[nodiscard]] json emit_fill(const std::optional<Bytes>& fill, DataType dt)
  • [[nodiscard]] json emit_group_meta(const json& attributes)
  • [[nodiscard]] std::optional<Bytes> parse_fill(const json& v, DataType dt, const std::string& ctx, bool lenient)
  • [[nodiscard]] std::string chunk_key(const std::vector<std::uint64_t>& index, char separator)
  • [[nodiscard]] std::string emit_data_type(DataType dt)
  • [[nodiscard]] std::string meta_key(const std::string& path)
  • void consolidate(Store& store)

<tt>zip.hpp</tt>

<tt>namespace zarr</tt>

  • class ZipStore : Store
    • ZipStore(std::shared_ptr<Store> source, std::string archive_key)
    • [[nodiscard]] std::optional<Bytes> read(std::string_view key) override
    • [[nodiscard]] std::optional<Bytes> read_range(std::string_view key, ByteRange range) override
    • [[nodiscard]] std::optional<std::uint64_t> size(std::string_view key) override
    • [[nodiscard]] bool exists(std::string_view key) override
    • void write(std::string_view, Bytes) override
    • void erase(std::string_view) override
    • [[nodiscard]] std::vector<std::string> list_prefix(std::string_view prefix) override
    • [[nodiscard]] DirListing list_dir(std::string_view prefix) override
    • [[nodiscard]] std::size_t entry_count() const
  • void zip_pack(Store& source, Store& dest, const std::string& dest_key, const std::string& prefix = "")

<tt>adapters/filesystem_store.hpp</tt>

<tt>namespace zarr</tt>

  • class FilesystemStore : Store
    • explicit FilesystemStore(std::filesystem::path root, bool create = true)
    • [[nodiscard]] std::optional<Bytes> read(std::string_view key) override
    • [[nodiscard]] std::optional<Bytes> read_range(std::string_view key, ByteRange range) override
    • void write(std::string_view key, Bytes value) override
    • [[nodiscard]] std::optional<std::uint64_t> size(std::string_view key) override
    • [[nodiscard]] bool exists(std::string_view key) override
    • void erase(std::string_view key) override
    • [[nodiscard]] std::vector<std::string> list_prefix(std::string_view prefix) override
    • [[nodiscard]] DirListing list_dir(std::string_view prefix) override