Module Storage.FilesystemStore

A local filesystem storage backend for a Zarr V3 hierarchy.

include Zarr.Storage.STORE with type 'a Deferred.t = 'a
module Deferred : Zarr.Types.Deferred with type 'a t = 'a
type t

The storage type.

module Group : sig ... end
module Array : sig ... end
val hierarchy : t -> (Zarr.Node.Array.t list * Zarr.Node.Group.t list) Deferred.t

hierarchy t returns p where p is a pair of lists representing all nodes in store t. The first element of the pair is a list of all array nodes, and the second element is a list of all group nodes. This operation returns a pair of empty lists if store t is empty.

  • raises Parse_error

    if any node has invalid node_type metadata.

val clear : t -> unit Deferred.t

clear t clears the store t by deleting all nodes. If the store is already empty, this is a no-op.

val create : ?perm:Eio.File.Unix_perm.t -> env:< fs : Eio.Fs.dir_ty Eio.Path.t.. > -> string -> t

create ~perm ~env dir returns a new filesystem store.

  • raises Failure

    if dir is a directory that already exists.

val open_store : ?perm:Eio.File.Unix_perm.t -> env:< fs : Eio.Fs.dir_ty Eio.Path.t.. > -> string -> t

open_store ~perm ~env dir returns an existing filesystem Zarr store.

  • raises Failure

    if dir is a file and not a Zarr store path.