HDFGroup / HDFGroup/hdf5_plugins

Canonical name confirmation for H5Z_class3_t filter plugins

Open
#255 27 comments 3 reactions 1 assignee Claimed by @ajelenak View on GitHub
Dominant language
CMake
Stars
21
Forks
26
Avg merge
5d 7h
Merged PRs (30d)
1

Description

[**Last Update: 2026/06/05**]

HDF5 2.x introduces a new filter plugin class, `H5Z_class3_t`, that turns
the `name` field from a free-form debug comment into a load-bearing
**canonical name** β€” the string identifier used by the new
`H5Pappend_filter` API, written into the on-disk filter-pipeline message,
and displayed by `h5dump` / `h5repack`. See RFC-HDFG-2026-001 (linked in
the companion PR) and the "Canonical Names" section of
`docs/RegisteredFilterPlugins.md` for the full contract.

This issue tracks **maintainer confirmation** of the proposed canonical
name for each currently registered plugin. The companion PR pre-fills a
proposed name in the registry table and marks each row `(proposed)`.

## What we need from you

**Maintainers: please review the proposed name for your filter ID** and
**reply on this issue with one explicit line** naming the ID and the
name so there is no ambiguity. (Please confirm here on the issue, not
on the companion PR #256 β€” the PR is for review of the doc edit itself
and confirmations would get lost during code review. Also please don't
use a πŸ‘ reaction on the issue body β€” there's no way to tell which row
a reaction refers to.)

To confirm:

> Confirm: ID `32013`, canonical name `zfp`.

To request a correction (subject to the syntactic rules `[A-Za-z0-9_.-]`,
≀255 bytes, case-sensitive):

> Correction: ID `32013`, canonical name should be `zfp-v2`.

Once confirmed, we'll drop the `(proposed)` marker for your row in
`docs/RegisteredFilterPlugins.md` and flip the row indicator below from
☐ to βœ…. (The indicator is a static symbol β€” GitHub doesn't allow
interactive checkboxes inside a table β€” so don't try to click it.)

If you don't have a GitHub account, you can also confirm by email to
help@hdfgroup.org and we'll relay it onto this issue.

**This change has no effect on existing plugin builds.** Canonical names
only become load-bearing when a plugin opts into the new `H5Z_class3_t`
class β€” that is a separate, opt-in code change in each plugin's source.

## Comment window

~6 weeks from this issue's open date. After that, rows without a
maintainer reply will keep their proposed name with an _unconfirmed_
marker. First-registered-wins still applies if a later replacement is
needed.

## Checklist

Hyperlinks in the **For Filter** column point at the per-filter section of
`docs/RegisteredFilterPlugins.md` on `master`. Maintainer attributions are
copied from the "Contact" subsection of each filter's entry.

| | ID | Canonical Name | For Filter | Maintainer | Short Description |
|---|---------|---------------------|-----------|------------|-------------------|
| βœ… | `257` | `hzip-silo` | [hzip](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#hzip) | Mark Miller (LLNL) | hzip compression used in Silo |
| βœ… | `258` | `fpzip-silo` | [fpzip](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#fpzip) | Mark Miller (LLNL) | Historical duplicate of `32014` β€” see Special cases below |
| ☐ | `305` | `lzo` | [LZO](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#lzo) | Francesc Alted | LZO lossless compression used by PyTables |
| ☐ | `307` | `bzip2` | [BZIP2](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#bzip2) | Francesc Alted | BZIP2 lossless compression used by PyTables |
| ☐ | `32000` | `lzf` | [LZF](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#lzf) | Andrew Collette (h5py) | LZF lossless compression used by the h5py package |
| ☐ | `32001` | `blosc` | [BLOSC](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#blosc) | Francesc Alted (PyTables) | Blosc lossless compression used by PyTables |
| ☐ | `32002` | `mafisc` | [MAFISC](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#mafisc) | Nathanael Huebbe | Modified LZMA compression filter, MAFISC (Multidimensional Adaptive Filtering Improved Scientific data Compression) |
| ☐ | `32003` | `snappy` | [Snappy](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#snappy) | Lucas C. Villa Real | Snappy lossless compression |
| ☐ | `32004` | `lz4` | [LZ4](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#lz4) | Michael Rissi (Dectris Ltd.) | LZ4 fast lossless compression algorithm |
| ☐ | `32005` | `apax` | [APAX](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#apax) | _no current contact_ | Samplify's APAX Numerical Encoding Technology |
| ☐ | `32006` | `cbf` | [CBF](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#cbf) | Herbert J. Bernstein | All imgCIF/CBF compressions and decompressions, including Canonical, Packed, Packed Version 2, Byte Offset and Nibble Offset |
| ☐ | `32007` | `jpeg-xr` | [JPEG-XR](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#jpeg-xr) | Marvin Albert | Enables images to be compressed/decompressed with JPEG-XR compression |
| ☐ | `32008` | `bitshuffle` | [bitshuffle](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#bitshuffle) | Kiyoshi Masui | Extreme version of shuffle filter that shuffles data at bit level instead of byte level |
| βœ… | `32009` | `spdp` | [SPDP](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#spdp) | Martin Burtscher | SPDP fast lossless compression algorithm for single- and double-precision floating-point data |
| ☐ | `32010` | `lpc-rice` | [LPC-Rice](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#lpc-rice) | Frans van den Bergh | LPC-Rice multi-threaded lossless compression |
| ☐ | `32011` | `ccsds-123` | [CCSDS-123](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#ccsds-123) | Frans van den Bergh | ESA CCSDS-123 multi-threaded compression filter |
| ☐ | `32012` | `jpeg-ls` | [JPEG-LS](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#jpeg-ls) | Frans van den Bergh | CharLS JPEG-LS multi-threaded compression filter |
| βœ… | `32013` | `zfp` | [zfp](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#zfp) | Peter Lindstrom (LLNL) | Lossy & lossless compression of floating point and integer datasets to meet rate, accuracy, and/or precision targets. |
| βœ… | `32014` | `fpzip` | [fpzip](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#fpzip) | Peter Lindstrom (LLNL) | Fast and Efficient Lossy or Lossless Compressor for Floating-Point Data |
| βœ… | `32015` | `zstd` | [Zstandard](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#zstandard) | Mark Kittisopikul | Real-time compression algorithm with wide range of compression / speed trade-off and fast decoder |
| ☐ | `32016` | `b3d` | [B³D](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#b3d) | _no current contact_ | GPU based image compression method developed for light-microscopy applications |
| βœ… | `32017` | `sz` | [SZ](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#sz) | Sheng Di (ANL) | An error-bounded lossy compressor for scientific floating-point data |
| ☐ | `32018` | `fcidecomp` | [FCIDECOMP](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#fcidecomp) | Dr. Daniel Lee (EUMETSAT) | EUMETSAT CharLS compression filter for use with netCDF |
| βœ… | `32019` | `jpeg` | [JPEG](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#jpeg) | Mark Rivers | Jpeg compression filter |
| ☐ | `32020` | `vbz` | [VBZ](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#vbz) | George Pimm (Oxford Nanopore) | Compression filter for raw dna signal data used by Oxford Nanopore |
| βœ… | `32021` | `fapec` | [FAPEC](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#fapec) | Jordi Portell i de Mora (DAPCOM Data Services S.L.) | Versatile and efficient data compressor supporting many kinds of data and using an outlier-resilient entropy coder |
| ☐ | `32022` | `bitgroom` | [BitGroom](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#bitgroom) | Charlie Zender (UC Irvine) | The BitGroom quantization algorithm |
| ☐ | `32023` | `granular-bitround` | [Granular BitRound (GBR)](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#gbr) | Charlie Zender (UC Irvine) | The GBR quantization algorithm is a significant improvement to the BitGroom filter |
| βœ… | `32024` | `sz3` | [SZ3](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#sz3) | Sheng Di (ANL) | A modular error-bounded lossy compression framework for scientific datasets |
| ☐ | `32025` | `delta-rice` | [Delta-Rice](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#delta-rice) | David Mathews | Lossless compression algorithm optimized for digitized analog signals based on delta encoding and rice coding |
| ☐ | `32026` | `blosc2` | [BLOSC2](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#blosc2) | Francesc Alted (Blosc Development Team) | The recent new-generation version of the Blosc compression library |
| ☐ | `32027` | `flac` | [FLAC](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#flac) | Laurie Stephey | FLAC audio compression filter in HDF5 |
| βœ… | `32028` | `sperr` | [SPERR](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#sperr) | Samuel Li | SPERR is a lossy scientific (floating-point) data compressor that produces one of the best rate-distortion curves |
| ☐ | `32029` | `terse-prolix` | [TERSE/PROLIX](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#trpx) | Jan Pieter Abrahams | A lossless and fast compression of the diffraction data |
| ☐ | `32030` | `ffmpeg` | [FFMPEG](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#ffmpeg) | Cai Lab (Univ. of Michigan) | A lossy compression filter based on ffmpeg video library |
| βœ… | `32031` | `jpeg2000` | [JPEG2000](https://github.com/HDFGroup/hdf5_plugins/blob/master/docs/RegisteredFilterPlugins.md#jpeg2000) | Mark Harfouche | A compression filter for lossy and lossless coding |

## Special cases

- `257` `hzip-silo` β€” name corrected from `hzip` to `hzip-silo` by Mark Miller (LLNL) to distinguish it from any silo-independent version of hzip.
- `258` `fpzip-silo` β€” ID 258 is a historical duplicate of `32014`. Name corrected from `fpzip-legacy` to `fpzip-silo` by Mark Miller (LLNL) to distinguish it from any silo-independent version of fpzip.
- `32005` `apax` and `32016` `b3d` β€” the registry entries have no current
contact. If you maintain these or know who does, please reply so we can
attribute the canonical name.

## Companion PR

Companion PR: #256

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.