docs: Blosc2 reads (read only); ZFP is the one plugin filter left
Record the `blosc2` feature in the changelog, the README's feature table and the crate table, and mark the Blosc2 half of the known "Filters" issue fixed (dated, with the conformance run that shows h5ex_d_blosc2 reading). What stays open: ZFP, writing Blosc2, and the Blosc2 features hdf5plugin never writes (dictionaries, lazy chunks, variable-length blocks, user-defined codecs and registered filters), which are errors. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
@@ -2,6 +2,26 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
### Blosc2 (2026-09-26)
|
||||
- **Blosc2 (filter 32026) reads, in pure Rust.** Files written with
|
||||
hdf5plugin's `Blosc2` failed with `UnsupportedFilter`. New feature
|
||||
`blosc2` (`clawhdf5-format` and `clawhdf5`, included in `plugin-filters`)
|
||||
decodes the Blosc2 contiguous frame hdf5-blosc2 stores per chunk, the
|
||||
B2ND arrays it uses for chunks of 2 or more dimensions (blocks gathered
|
||||
back into C order), Blosc2 chunks with their special values (zeros, NaN,
|
||||
uninitialised, one repeated value), and the shuffle, bit-shuffle, delta
|
||||
and truncate-precision filters, over the BloscLZ, LZ4/LZ4HC, Zlib and
|
||||
Zstandard codecs shared with Blosc 1. Read only: there is no Blosc2
|
||||
encoder. Dictionaries, lazy chunks, variable-length blocks, user-defined
|
||||
codecs and registered Blosc2 filters (e.g. bytedelta) are errors;
|
||||
uninitialised chunks read as zeros. Tested against h5py 3.16 +
|
||||
hdf5plugin 7.1 (every codec, filter and level 0-9; 1- to 5-D chunks with
|
||||
partial edge chunks; every integer width and f4/f8; datasets of zeros,
|
||||
one value and NaN; Fletcher32 before Blosc2) and against frames from
|
||||
python-blosc2 4.13.1 for what hdf5plugin never writes
|
||||
(`crates/clawhdf5-format/tests/fixtures/blosc2/`); the decoder is
|
||||
fuzzed. Conformance: 576 of 697 files ok (was 575) — h5ex_d_blosc2.
|
||||
|
||||
### Concurrent reads (2026-09-26)
|
||||
- **Full reads of chunked datasets scale with threads again when rayon's
|
||||
pool has one thread.** Each full read handed its chunks to rayon to
|
||||
@@ -372,6 +392,7 @@
|
||||
missing feature ("unsupported filter: 32026 (Blosc2, not implemented by
|
||||
clawhdf5)").
|
||||
- **Not implemented:** Blosc2 (32026) and ZFP (32013) remain a clear error.
|
||||
(Blosc2 reads since the `blosc2` feature, see above.)
|
||||
- **Wrong data: a chunk that decodes short read as zeros** (pre-existing, every
|
||||
filter). HDF5 stores every chunk at the full chunk size, so a filter
|
||||
pipeline that decodes to fewer bytes means a corrupt chunk; every chunk
|
||||
|
||||
Reference in New Issue
Block a user