Luxar Viewer API Documentation - v2026.9.22
    Preparing search index...

    Function createZipStore

    • Create a store that reads a zipped Zarr archive (.zarr.zip) in place, over HTTP range requests — one ranged GET per chunk, no unpacking.

      ZipFileStore comes from @zarrita/storage rather than zarrita, which re-exports only FetchStore. Note it is flagged @experimental upstream; we lean on that lightly, because only get() is ever called here — its getRange() is the method that reaches into unzipit internals, and nothing in the viewer calls getRange on a store. Browser builds may warn that unzipit imports Node's worker_threads; that import is guarded by its Node branch, and workers remain disabled in the browser path used here.

      NOT wrapped in boundedConcurrencyStore: the ranged GETs are gated one level down, inside fetchWithRetry, which also gives them the retry budget. Gating at both levels would let a gated get await a gated read and deadlock the pool.

      KNOWN COST: reading an archive pays a fixed preamble before the first chunk — unzipit reads a 65,557-byte tail to find the end-of-central-directory record and then the central directory itself, so a store whose directory sits just before that tail transfers part of it twice (~141 kB measured at 1081 members). LuxarZipStore at least defers that to the first read rather than paying it at construction.

      Parameters

      • url: string

      Returns AsyncReadable