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
(http://www.hdfgroup.org/HDF5). 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

https://github.com/dk1978/serialization/tree/development

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 acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk