Help us improve by taking our short survey: https://www.hdfgroup.org/website-survey/

| HDF5 Last Updated on 2026-07-28 The HDF5 Field Guide

Loading...
Searching...
No Matches
Release Specific Information for HDF5 2.x

Navigate back: Main / Release Specific Information

# HDF5 Library and Tools

## Release Information

Additional Release Information | CHANGELOG.md
| Migrating from HDF5 1.14 to HDF5 2.x
| Software Changes from Release to Release in HDF5 2.x
| New Features in HDF5 Release 2.x
| ABI/API Compatibility Reports between 2.2.0 and 2.1.1 tar file or individual html files
| Doxygen generated Reference Manual

## Downloads

Source code and binaries are available at: HDF5 2.2.0 on GitHub

Please refer to Build instructions for building with CMake.

## Methods to obtain (gz file)

To download and extract the source tarfile, please follow one of the methods below, where ${PACKAGEVERSION} is 2.2.0 for this release.

1. Download the tarfile in a web browser, and extract it with gzip as:
   gzip -cd hdf5-${PACKAGEVERSION}.tar.gz | tar xvf -
   hdf5
   Definition HDF5.F90:26
2. Download the tarfile with wget on a terminal and extract with these commands:
   wget https://github.com/HDFGroup/hdf5/releases/download/${PACKAGEVERSION}/hdf5-${PACKAGEVERSION}.tar.gz
   gzip -cd hdf5-${PACKAGEVERSION}.tar.gz | tar xvf -

## Doxygen Generated Reference Manual

The new HDF5 documentation based on Doxygen is available here.

This documentation is WORK-IN-PROGRESS.

Since this portion of the HDF5 documentation is now part of the source code, it gets the same treatment as code. In other words, issues, inaccuracies, corrections should be reported as issues in GitHub, and pull requests will be reviewed and accepted as any other code changes.

# Migrating from HDF5 1.14 to HDF5 2.x

This section highlights some changes that might affect migrating to HDF5 2.x, please refer to the Software Changes from Release to Release in HDF5 2.x or the CHANGELOG.md for detail.

- Default file format is now 1.8
- The file format has been updated to 4.0
- API signature changes
  - H5Dread_chunk()
  - H5Tdecode()
  - H5Iregister_type()
- A new backend based on the aws-c-s3 library replaced the ROS3 VFD's S3 backend based on libcurl. The ROS3 VFD now requires the aws-c-s3 library in order to be built. See the CHANGELOG.md for a complete description on this feature.
- Significance in tools
  - The tool h5dump has a new option --lformat and its XML option is deprecated.
  - The high-level GIF tools, h52gif and gif2h5 have been removed. We may move them to a separate repository in the future. See CHANGELOG.md for an explanation.

# New Features in HDF5 Release 2.x

This section includes the new features introduced in the HDF5 2.x series:

- In 2.2.0 Faster Access to Data Stored in S3

A major enhancement in HDF5 2.2.0 is the addition of an I/O block cache for the ROS3 Virtual File Driver (VFD). By reducing the number of requests sent to Amazon S3 for files that do not use paged allocation, applications can achieve more efficient cloud-based data access with fewer network transactions and improved overall performance.

Additional optimizations delay initial file caching until the first read operation, reducing file-open overhead.

Enhanced Security with Signed Plugin Support

HDF5 2.2.0 introduces optional digital signature verification for dynamically loaded plugins. Organizations can now cryptographically verify plugins before loading them, helping protect scientific and production environments from unauthorized or modified plugin binaries.

A new h5sign utility allows developers to sign plugin libraries using RSA signatures, while configurable keystores support trusted-key management and signature revocation.

- In 2.0.0

- Support for Complex number datatypes
  Support for the C99 float _Complex, double _Complex and long double _Complex (with MSVC, _Fcomplex, _Dcomplex and _Lcomplex) types has been added for platforms/compilers that support them. These types have been implemented with a new datatype class, H5T_COMPLEX. Note that any datatypes of class H5T_COMPLEX will not be readable with previous versions of HDF5. If a file is accessed with a library version bounds "high" setting less than H5F_LIBVER_V200, an error will occur if the application tries to create an object with a complex number datatype. If compatibility with previous versions of HDF5 is desired, applications should instead consider adopting one of the existing conventions.

- An AWS endpoint command option
  The new option is --endpoint-url, which allows the user to set an alternate endpoint URL other than the standard "protocol://service-code.region-code.amazonaws.com". If --endpoint-url is not specified, the ROS3 VFD will first check the AWS_ENDPOINT_URL_S3 and AWS_ENDPOINT_URL environment variables for an alternate endpoint URL before using a default one, with the region-code being supplied by the FAPL or standard AWS locations/environment variables.
  This option is supported by the following tools: h5dump, h5ls, h5stat

- Specifying ROS3 VFD on the command line is not required when using S3 URI
  This feature applies to the following tools: h5dump, h5ls, h5stat.

- Performance improvement in opening a virtual dataset with many mappings
  When opening a virtual dataset, the library would previously decode the mappings in the object header package, then copy them to the dataset struct, then copy them to the internal dataset creation property list. Copying the VDS mappings could be very expensive if there were many mappings. Changed this to delay decoding the mappings until the dataset code, and delay copying the layout to the DCPL until it is needed. This results in only the decoding and no copies in most use cases, as opposed to the decoding and two copies with the previous code.

- Support for chunks larger than 4 GiB using 64 bit addressing.

- New predefined datatypes for

2.1.0 | FP6 data in E2M3 and E3M2 formats | For details, please see the Software Changes section of Release 2.1.0 versus Release 2.0.0.
FP4 data in E2M1 format
2.0.0 | FP8 data in E4M3 and E5M2 formats (https://arxiv.org/abs/2209.05433), but not a native FP8 datatype | For details, please see the Software Changes section of Release 2.0.0 versus Release 1.14.6.
little- and big-endian bfloat16 data

- Default chunk cache hash table size increased to 8191
  In order to reduce hash collisions and take advantage of modern memory capacity, the default hash table size for the chunk cache has been increased from 521 to 8191. This means the hash table will consume approximately 64 KiB per open dataset. This value can be changed with H5Pset_cache() or H5Pset_chunk_cache(). This value was chosen because it is a prime number close to 8K.

Software Changes from Release to Release in HDF5 2.x

Navigate back: Main / Release Specific Information