Boost logo

Boost :

Subject: [boost] [serialization] new portable binary archive based on HDF5
From: Daniel Koester (dk_at_[hidden])
Date: 2013-12-13 14:20:05

Dear Boost developers,

I would like to share a contribution to the boost::serialization module.
It provides an answer to the challenge of supporting portable binary
archives by using the well-known and stable HDF5 library
( After first signals of interest by other
users I have decided to fully integrate my work with the current
boost::serialization module. My suggestion would be for Robert Ramey and
other interested developers to consider the inclusion of my work in the
official serialization code. I am not sure about the exact procedure in
this case.

I have forked from the Git serialization archive. All supplied tests
have passed for gcc on Linux and MSVC 10 on Windows. My work can be
pulled from

To compile the new archive code, define the paths to the HDF5
installation using the variables HDF5_INCLUDE_PATH, HDF5_LIB_PATH, and
HDF5_BIN_PATH either as environment variables or in
"project-config.jam". An example using the new archive is also provided
in the "example" subdirectory.

Motivation for this work:

The hdf5_archive project provides a new serialization archive format
based on HDF5 to complement the ones already included in the
boost::serialization library: plain text, XML, and native binary. By
building on the established and well-known boost::serialization
framework, application code can use HDF5 or switch to any of the other
established archive formats with only minimal changes to the code involved.

HDF5 has become a popular format to store scientific data. It is open
and well-documented. Further advantages of HDF5 are the following:
- the format is self-describing and portable across computing platforms
- efficient storage of large arrays, parallel IO using MPI is possible
(though not yet implemented)
- hierarchical description of stored data
- several low-level storage drivers, including single file or
multiple-directory layouts
- APIs to C, C++, and Fortran

Best regards,
Daniel Koester

Boost list run by bdawes at, gregod at, cpdaniel at, john at