From 84ec830ade2968654a579518c62b2000e4962c25 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Thu, 9 Jan 2025 10:14:21 +0100 Subject: [PATCH] Nitpick - re-add some README information for repo completeness --- README.md | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 868a15b9d..dee6c73db 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,45 @@ > The development of HighFive will continue at: > https://github.com/highfive-devs/highfive - # HighFive - HDF5 header-only C++ Library +Documentation: https://bluebrain.github.io/HighFive/ + +## Brief + +HighFive is a modern header-only C++14 friendly interface for libhdf5. + +HighFive supports STL vector/string, Boost::UBLAS, Boost::Multi-array and Xtensor. It handles C++ from/to HDF5 with automatic type mapping. +HighFive does not require additional libraries (see dependencies). + +It integrates nicely with other CMake projects by defining (and exporting) a HighFive target. + +### Design +- Simple C++-ish minimalist interface +- Only hard dependency is libhdf5 +- Zero/low overhead, when possible +- RAII for opening/closing files, groups, datasets, etc. +- Written in C++14 + +### Feature support +- create/read/write files, datasets, attributes, groups, dataspaces. +- automatic memory management / ref counting +- automatic conversion of `std::vector` and nested `std::vector` from/to any dataset with basic types +- automatic conversion of `std::string` to/from variable- or fixed-length string dataset +- selection() / slice support +- parallel Read/Write operations from several nodes with Parallel HDF5 +- Advanced types: Compound, Enum, Arrays of Fixed-length strings, References +- half-precision (16-bit) floating-point datasets +- `std::byte` in C++17 mode (with `-DCMAKE_CXX_STANDARD=17` or higher) +- etc... (see [ChangeLog](./CHANGELOG.md)) + +### Dependencies +- HDF5 or pHDF5, including headers +- boost (optional) +- eigen3 (optional) +- xtensor (optional) +- half (optional) + The releases for versions 2.x.y and two prereleases of v3 can be found at: * https://github.com/BlueBrain/HighFive/releases * https://zenodo.org/doi/10.5281/zenodo.10679422