You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
zarr: archives name numcodecs.zlib for zlib streams and refkv.tiff_lzw for QPTIFF LZW tiles; refkv no longer registers zlib, imagecodecs_lzw, imagecodecs_jpeg, imagecodecs_jpeg2k or imagecodecs_jpegxr (the last three come from imagecodecs-zarr, in the images extra).
say zarrify for virtualize, in the code, the CLI, the spec and the docs (#112)
mp4: cut video chunks at keyframes and decode a chunk's planes once, as a stream (#107)
ir: add the refkv.stream codec, port MP3 onto it, and virtualize MP4 files as the MP4 profile (§18) (#99)
reader: read http(s) archives with refkv's own HTTP client, and make obstore an extra (#72)
python: make python/ a self-contained package versioned from git tags (#71)
Features
cli: add vzip convert, a Rust port of the converter that writes identical archives (#78) (a6fb670)
demo: add a QuickTime .mov from DANDI 001538 to the MP4 examples (#154) (3fabeb2)
demo: add examples of LIF, QPTIFF, HDF5, NumPy, MP3 and FLAC files (#160) (099d5b2)
demo: add NOAA HRRR and GFS forecasts as GRIB examples (#170) (4b3d193)
demo: link a hosted .vzip archive as a plain vzip: Neuroglancer source (#126) (1f5ffbc)
demo: make a DANDI behavior video the MP4 example (#152) (2fa1ea1)
demo: show a Python script that builds the same Zarr hierarchy (#169) (cbe7ad0)
demo: show an MP4 file's video in Neuroglancer, with a SLEAP example (#108) (463c316)
dicom: zarrify JPEG Lossless frames as imagecodecs_ljpeg chunks (#163) (97c4ef0)
flac: zarrify FLAC files as virtual shards of frames, with a shared shard pass (#121) (df14a47)
grib: zarrify GRIB2 files, each message a chunk decoded by refkv.grib (#166) (0dd9063)
hdf5: zarrify HDF5 files, NWB first among them, in hdmf-zarr's Zarr v3 form (#143) (8a56953)
ir: add the refkv.stream codec, port MP3 onto it, and virtualize MP4 files as the MP4 profile (§18) (#99) (8f79104)
ir: virtualize MP3 files through the Rust IR, as the MP3 profile (§16) (#91) (0b127f3)
ir: virtualize MRC2014 files through the Rust IR, as the MRC profile (revision 28) (#83) (5b43073)
ir: virtualize Olympus VSI slides through the Rust IR, as the VSI profile (revision 29) (#87) (8ab760f)
js: build refkv_embed.js, the virtualizer and FITS tile decoder for a host that reads the input itself (#109) (62af0f1)
lif: zarrify Leica LIF files, as the LIF profile (#118) (4a14bec)
mp4: cut video chunks at keyframes and decode a chunk's planes once, as a stream (#107) (fd78ebe)
mp4: zarrify H.264 tracks whose pictures are presented before their sync sample (#110) (8fec438)
mp4: zarrify HEVC video tracks, 8- and 10-bit 4:2:0 (#151) (99eda76)
ndpi: zarrify JPEG XR levels, with the pixels their streams hold (#125) (3e3cdc1)
npy: present the deflated members of .npz archives, as np.savez_compressed writes them (#158) (9d409d9)
npy: zarrify NumPy .npy files and the stored arrays of .npz archives (#156) (2780e2e)
nrrd: zarrify NRRD files, attached or detached, raw or gzip, as the NRRD profile (#119) (465d575)
phkv: add the perfect-hash binding (Part 3, draft), standalone and hybrid with vzip (#79) (6e7776e)
python: build free-threaded wheels for CPython 3.14t and 3.15t (#174) (1f5b7d1)
reader: read http(s) archives with refkv's own HTTP client, and make obstore an extra (#72) (a165682)
tiff: zarrify images in strips and LZW, as the QPTIFF profile does (#137) (3b4cbd8)
tiff: zarrify images with a horizontal predictor through imagecodecs_delta (#139) (242ae27)
types: type-check the repository with pyrefly's strict preset (#116) (eefa6bd)
virtualize: add an omero block to TIFF and NDPI images, with channel labels and colors (#95) (7d051e3)
virtualize: add the QPTIFF profile, with LZW tiles and strips (#84) (850969d)
virtualize: sample the omero windows of TIFF and QPTIFF images from the coarsest level (#98) (01c4200)
vsi: zarrify lossless JPEG tiles, and ETS headers that list no dimension sizes (#162) (52304c5)
zarr: expose refkv's codecs to zarr through entry points, and rename the clashing ones (#136) (1bdab30)
zarrify: add zarrify_async and zarrify_store_async, which keep the event loop free (#175) (ca01733)
zarrify: name an input's profile with a source or store class, and choose its layouts (#114) (db24287)
zarrify: pad NIfTI, MRC and FITS edge chunks with one shared zero data source (#120) (b5f0eda)
Bug fixes
demo: make two-finger scroll step along the data's first non-x/y axis (#168) (2ff14a3)
demo: point the N5 example at an OpenOrganelle store that still exists (#129) (5aeb5a3)
js: say that a failed fetch in a browser may be a server that does not allow cross-origin reads (#111) (4bf3955)
mp4: read a version 0 ctts box's offsets as signed (#153) (7ad0409)
mp4: reject an avcC SPS whose RBSP is too short for its profile and level (#133) (7d13d85)
mp4: reject an ftyp box too short for its fields instead of panicking (#132) (513f947)
ndpi: give a strip's frame header its level's size when the two differ (#101) (4a7b754)
ndpi: read ASCII values out of line, and add no McuStartsHighBytes to an in-line McuStarts (#130) (2aa5b20)
nightly: report inputs their server did not serve as unavailable, and compare mutants as their fixtures (#159) (7a7e572)
reader: send a User-Agent with every range request (#92) (dc35c76)
sections: leave CHANGELOG.md's section references as release-please writes them (#173) (af8f923)
uri: percent-encode a local path when it names a source (#124) (a944426), closes #122
uri: support Windows paths in file: URIs, and run CI on Linux, macOS and Windows (#70) (8ba6323)
vsi: probe a stack's frame_t_0.ets only when its frame_t.ets is absent (#161) (6f33355)
zarr: decode zarrified HDF5 files' float attributes, so NWBZarrIO reads a rate of NaN (#149) (782ec27)
Documentation
add a guide and a project skill for adding a file format (#155) (276ebad)
demo: move the demo site to d-v-b.github.io/refkv-demo (#164) (89beb0f)
design: center PITCH.md on refkv as the model and vzip as its ZIP binding (#76) (994a08d)
design: drop the process history from COMPARISON.md and PITCH.md (#75) (0f7b66d)
design: frame vzip as an experiment and point readers to Icechunk and kerchunk (#74) (de1e1c5)
design: measure third-party readers against the Rust parsers, and keep the parsers (#135) (65b5131)
design: plan the FITS profile, a single-file virtualizer with a tile codec (#88) (5b56a47)
give each format a runnable example that zarrifies public data and plots it (#113) (94e473f)
readme: present refkv as the model and vzip as its ZIP binding (#77) (c00546b)
spec: state the format documents' shared paragraphs once, and check every CMO copy (#104) (44054be)
spec: tabulate every zarrification profile and reconcile the specs with refkv (#131) (209b0ef)
Refactoring
say zarrify for virtualize, in the code, the CLI, the spec and the docs (#112) (adb44e9)
Build
python: make python/ a self-contained package versioned from git tags (#71) (1d02f13)