[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#949950: ITP: libh5cpp-dev -- H5CPP is a novel approach to persistence in the field of machine learning and science, it provides high performance sequential and block access to HDF5 containers through modern C++ templates. It supports major linear algebra libraries such as armadillo, eigen3, dlib, itpp, blaze, boost::ublas in addition to stl::vector. And it has an amitious plan to provide quality non-intrusive persistence for arbitrary C++ objects.



Package: wnpp
Severity: wishlist
Owner: steven@vargaconsulting.ca

* Package name    : libh5cpp-dev
  Version         : 1.10.4.5
  Upstream Author : Steven Varga <steven@vargaconsulting.ca>
* URL             : http://h5cpp.org/
* License         : MIT
  Programming Lang: C++
  Description     : H5CPP is a novel approach to persistence in the field of machine learning and science, it provides high performance sequential and block access to HDF5 containers through modern C++ templates. It supports major linear algebra libraries such as armadillo, eigen3, dlib, itpp, blaze, boost::ublas in addition to stl::vector. And it has an amitious plan to provide quality non-intrusive persistence for arbitrary  C++ objects.


H5CPP and its LLVM based companion the H5CPP-COMPILER was first introduced in Chicago C++ usergroup meeting in 2018 fall, has been presented at ISC'19 BOF and is a collaboration between The HDFGroup and the author. The package is to replace the somewhat outdated HDF5 C++ library. Its RAII enabled resource handles are fully interchangeable with HDF5 CAPI hid_t, and in most cases are binary compatible. The origins of H5CPP roots in High Frequency Trading data solutions, where having low latency high throughput sequential and block data access is critical. Since the inception of H5CPP the code has been used for general scientific purposes on supercomputers and workstations, is found to be useful in sensor networks and particle colliders. 

The following packages has been examined before development:HDF5 C++, ess-dmsc/h5cpp, HighFive by Blue Brain, H5TL, HDF5Wrapper, hdf5wrap, hdf5pp, H5Easy
before the development of this project, and many of the shortcomings has been addressed. In terms of maintainability, functionality and performance it is found to be ahead of alternative solutions, with its companion package: H5CPP COMPILER, it provides assisted reflection based persistence bringing C++ planned reflection/introspection into today.

H5CPP is constantly improved and may be influenced by attending the HDF5 C++ user group meetings, or through direct contact with author.

Future plans: In the next release full STL object support with arbitrary POD and standard layout types; shifting towards template based introspection, sparse linear algebra support and interop with modern statistical platforms (julia, python, R), multi dataset support for complex object types. In the current research phase the author began collaborating with domain specific format authors to standardise and support higher level formats in fields
such as genetics, visualisation/graphics, physics, ... .

Maintenance and sponsor: the author, steven varga is to maintain the library, and yes looking for sponsor

website: http://h5cpp.org
documentation: http://sandbox.h5cpp.org/
ISC'19 Frankfurt presentation: http://isc19.h5cpp.org/
2019 HDFGroup webinar: https://www.youtube.com/watch?v=7A5dPL7zrj0&t=56s
webinar-slides: http://webinar.h5cpp.org/
HDFGroup blog(copy): http://sandbox.h5cpp.org/blog/
Repository: https://github.com/steven-varga/h5cpp


Reply to: