Dimension::size of an unlimited dimension was its dimension scale's extent, which netCDF-C leaves at 0, so it read 0 for a dimension holding records. It is now what netCDF-C reports (nc4_find_dim_len): the largest current extent of the variables using it in any group, found through the scale's REFERENCE_LIST, a coordinate variable's own extent included; 0 when nothing has been written. interop_tests::unlimited_dimension_lengths_match_netcdf4_python compares with netCDF4-python (variables of different lengths, one in a subgroup, an unwritten dimension, a coordinate variable shorter than another variable on its dimension, a subgroup's own dimension); before the fix it got time 0/6, rec 3/5, srec 0/1. The known-issues entry moves to Fixed; the crate README's warning goes. A new open entry records a related bug found meanwhile: variables' dimensions are matched by size, not DIMENSION_LIST. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
clawhdf5 documentation
Every document in the repository, one line each. Start with the README and the quick start.
Using clawhdf5
| Document | What it covers |
|---|---|
| README | What clawhdf5 is, the evidence, the feature matrix, install, quick starts, crate map |
| QUICKSTART.md | Working examples: HDF5 in Rust and Python, remote files, SWMR, NetCDF-4, h5rs, agent memory, CLI |
| USE_CASES.md | Where clawhdf5 fits, and when to use something else |
| agent-memory.md | The agent-memory store: search, durability, signing, modules, performance, schema, CLI, SQLite migration |
| known-issues.md | Open limits and fixed bugs, dated — read before relying on an edge case |
| openclaw.md | Why clawhdf5 is not an OpenClaw memory plugin, and what one would need |
| CHANGELOG.md | Every change by release, with upgrade notes; "Unreleased" is everything since v2.7.0 |
Evidence
| Document | What it covers |
|---|---|
| CONFORMANCE.md | Generated report: 697 public HDF5 files read by clawhdf5 and h5py and compared; the CVE corpus against h5dump and h5py |
| conformance/README.md | How the conformance sweep works and how to run it |
| BENCHMARKS.md | Every measurement with date, machine and command: HDF5 reads and writes, concurrency, deflate backends, search, LongMemEval, footprint |
| benchmarks/longmemeval/README.md | Downloading the LongMemEval data |
| benchmarks/2026-03-01-oracle-xeon.md | An early (March 2026) benchmark run on a Xeon server; superseded by BENCHMARKS.md |
Design
| Document | What it covers |
|---|---|
| design/range-reads.md | Reading through a Storage trait: milestones M0–M5 (indexed lookups, storage, raw data, remote files, the browser, SWMR) |
| design/swmr.md | Reading files a libhdf5 SWMR writer is appending to (M5) |
| design/tools/ | Scripts behind the range-read design's measurements (inventory.py, libhdf5_reads.py, range-trace) |
Crates and packages
| Document | What it covers |
|---|---|
| crates/clawhdf5 | The facade: File, FileBuilder, FileEditor |
| crates/clawhdf5-format | The format implementation and codecs; fuzzing |
| crates/clawhdf5-filters | Deflate backends |
| crates/clawhdf5-io | I/O helpers (mmap, async, HSDS, MPI) |
| crates/clawhdf5-remote | Remote files: HTTP(S), object stores, block cache |
| crates/clawhdf5-netcdf4 | NetCDF-4 layer |
| crates/clawhdf5-derive | Derive macros |
| crates/clawhdf5-tools | h5rs |
| crates/clawhdf5-py | Python bindings |
| crates/clawhdf5-wasm | The browser reader crate |
| examples/wasm-viewer | Browser viewer and the clawhdf5-wasm JavaScript API |
| crates/clawhdf5-napi, packages/clawhdf5-node | Node.js bindings and package (unpublished, does not work) |
| crates/clawhdf5-android | Android JNI bindings for the agent store |
| crates/clawhdf5-agent | Agent memory (full guide: agent-memory.md) |
| crates/clawhdf5-ann | HNSW index |
| crates/clawhdf5-accel | SIMD kernels |
| crates/clawhdf5-gpu | GPU vector distances |
| crates/clawhdf5-migrate | SQLite migration |
| crates/clawhdf5-cli | The agent-memory CLI |
| crates/clawhdf5-bench | Benchmarks and harnesses |
Project history and working notes
| Document | What it covers |
|---|---|
| ROADMAP.md | What has shipped (releases and PRs since v2.7.0) and what is next |
| CLAUDE.md | Architecture and workflow notes for contributors and coding agents |
| archive/IMPROVEMENT_LOG.md, archive/IMPROVEMENT_SCAN.md | Logs of earlier automated improvement passes (archived, historical) |
| archive/plans/ | Implementation plans from June 2026 (filter codecs, format write extensions, MPI-IO); archived, historical |
| research/ | Research briefs from August 2026 (performance, security, provenance) |