SHAPE5 is a machine-readable specification of the HDF5 file format using GNU poke pickles.
The goal is to describe HDF5 on-disk structures as executable binary format definitions that can be loaded in GNU poke to inspect, validate, and reason about HDF5 files.
This repository is a work in progress. The current pickles focus on core HDF5 metadata structures, including the superblock, B-trees, object headers, and related messages.
pickles/common.pk: shared helpers and common definitionspickles/superblock.pk: HDF5 superblock definitionspickles/messages.pk: object header message definitionspickles/ohdr.pk: object header definitionspickles/btree.pk: umbrella loader for version 1 and version 2 B-tree definitionspickles/v1_btree.pk: version 1 B-tree and symbol table node definitionspickles/v2_btree.pk: version 2 B-tree definitionspickles/farray.pk: fixed array chunk index definitionspickles/earray.pk: extensible array chunk index definitionspickles/lookup3.pk: implementation of the lookup3 hash function used for checksums
MARKERS.md: list of known on-disk markers in HDF5 and Onion filesTOOLS.md: documentation for tools included in this repository, including the marker scanner and interactive explorerTUTORIAL.md: step-by-step tutorial for using the pickles and tools in this repository
examples/: example HDF5 files and GNU poke sessions demonstrating the use of the pickles and tools in this repository
This material is based upon work supported by the U.S. National Science Foundation under Federal Award No. 2534078. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.