decompress_chunk_masked and compress_chunk matched on the filter ID. They now look the ID up in filter_registry: a static table of the built-in filters compiled into this build (a filter whose cargo feature is off is simply absent), then the codecs an application registered at run time with register_filter (a FilterCodec, or a plain decoding closure). Registered codecs cannot shadow a built-in one, and their output is held to the same per-stage bound as the built-in decoders. An ID in neither tier still fails with UnsupportedFilter(id). The "feature off" stub functions that returned UnsupportedFilter are gone: the table leaves those filters out instead. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
clawhdf5-format
Pure-Rust HDF5 binary format parsing and writing — no C dependencies.
Features
- Zero-copy superblock, object header, and B-tree parsing
- Chunked dataset read/write with filter pipelines
no_stdsupport (disablestdfeature)- Optional parallel reads via Rayon
- SHA-256 provenance tracking
Usage
use clawhdf5_format::Superblock;
let data = std::fs::read("data.h5").unwrap();
let sb = Superblock::from_bytes(&data).unwrap();
println!("HDF5 version {}.{}", sb.version_major(), sb.version_minor());
License
MIT