fhoefling / h5xx

Template-based C++ wrapper for HDF5 library
Other
20 stars 7 forks source link

h5xx — a template-based C++ wrapper for the HDF5 library

Build status: build status

Introduction

h5xx is a template-based C++ wrapper for the HDF5 library. The goal of h5xx is to provide an easy-to-use yet flexible and powerful interface to HDF5 for C++ codes. In some sense, h5xx aims at providing similar functionality to C++ as h5py does to Python. For example, a NumPy-like slicing notation wrapping HDF5 hyperslabs is implemented. Currently, h5xx supports std::vector, boost::array, and boost::multi_array containers.

Using h5xx, a hello world example to write a 32x32 Boost multi_array to a HDF5 dataset labeled "my_array" would look as follows:

boost_array_2d_t array(boost::extents[32][32]);
// fill array with data
h5xx::file file("data.h5", h5xx::file::out);
h5xx::create_dataset(file, "my_array", array);
h5xx::write_dataset(file, "my_array", array);

The unit tests and example codes provide further information on and guidance to the usage and the capabilities of h5xx.

h5xx can be used, copied, modified, and distributed freely under the terms of the 3-clause BSD license.

Requirements

See the file INSTALL.md for some hints on installing and using h5xx.

Supported platforms

In 2016/02, h5xx was successfully built and tested on the following configurations.

h5xx is considered mature. It is under active development.