https://github.com/bluebrain/highfive

HighFive - Header-only C++ HDF5 interface

https://github.com/bluebrain/highfive

Science Score: 33.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    21 of 67 committers (31.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords from Contributors

neuron morphology neuroscience reticulum mitochondria glia synapse radiuss build-tools hpsf
Last synced: 10 months ago · JSON representation

Repository

HighFive - Header-only C++ HDF5 interface

Basic Info
Statistics
  • Stars: 714
  • Watchers: 21
  • Forks: 161
  • Open Issues: 47
  • Releases: 20
Archived
Created over 10 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog License Authors

README.md

[!WARNING] The Blue Brain Project concluded in December 2024, so the HighFive development is ceased under the BlueBrain GitHub organization.

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)

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

The state of HighFive immediately before preparing it for archival is: * https://github.com/BlueBrain/HighFive/tree/v3.0.0-beta2

All future development and new releases can be found at: * https://github.com/highfive-devs/highfive

Example

```c++ using namespace HighFive;

File file("foo.h5", File::Truncate);

{ std::vector data(50, 1); file.createDataSet("grp/data", data); }

{ auto dataset = file.getDataSet("grp/data");

// Read back, automatically allocating:
auto data = dataset.read<std::vector<int>>();

// Alternatively, if `data` has the correct
// size, without reallocation:
dataset.read(data);

} ```

Funding & Acknowledgment

The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government's ETH Board of the Swiss Federal Institutes of Technology.

HighFive releases are uploaded to Zenodo. If you wish to cite HighFive in a scientific publication you can use the DOIs for the Zenodo records.

Copyright © 2015-2024 Blue Brain Project/EPFL

License

Boost Software License 1.0

Owner

  • Name: The Blue Brain Project
  • Login: BlueBrain
  • Kind: organization
  • Email: bbp.opensource@epfl.ch
  • Location: Geneva, Switzerland

Open Source Software produced and used by the Blue Brain Project

GitHub Events

Total
  • Create event: 19
  • Release event: 2
  • Issues event: 5
  • Watch event: 41
  • Delete event: 20
  • Issue comment event: 33
  • Push event: 62
  • Pull request review comment event: 3
  • Pull request review event: 21
  • Pull request event: 37
  • Fork event: 4
Last Year
  • Create event: 19
  • Release event: 2
  • Issues event: 5
  • Watch event: 41
  • Delete event: 20
  • Issue comment event: 33
  • Push event: 62
  • Pull request review comment event: 3
  • Pull request review event: 21
  • Pull request event: 37
  • Fork event: 4

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 614
  • Total Committers: 67
  • Avg Commits per committer: 9.164
  • Development Distribution Score (DDS): 0.64
Past Year
  • Commits: 62
  • Committers: 3
  • Avg Commits per committer: 20.667
  • Development Distribution Score (DDS): 0.145
Top Committers
Name Email Commits
Luc Grosheintz l****z@g****m 221
Nicolas Cornu n****u@e****h 95
Adrien Devresse a****e@e****h 83
Fernando Pereira f****e@g****m 33
Tom de Geus t****s 29
Juan Hernando Vieites j****o@e****h 17
Matthias Wolf m****f@e****h 17
Omar Awile o****e@e****h 13
Henry Fredrick Schreiner h****r@c****h 11
github-actions[bot] 4****] 9
Tristan Carel t****l@e****h 8
contre r****c@c****s 3
Wolf Vollprecht w****t@g****m 3
Torsten Reuschel 8****n 3
Joseph O'Doherty j****o@n****m 3
Tristan Carel t****l@g****m 3
Alexandru Săvulescu a****u@e****h 3
Ali Can Demiralp d****i@g****m 3
JaWSnl J****l 3
Michael V. DePalatis m****e@d****t 2
Mario Emmenlauer m****o@e****e 2
Kerim k****v@m****u 2
Sergio s****z@e****h 2
Dekken p****n@g****m 2
Tobias Klauser t****r@d****h 2
WeinaJi w****i@e****h 1
Tom Vander Aa T****a@g****m 1
Tino Wagner i****h@t****m 1
Mathieu Bernard m****d@i****r 1
Jonas Karlsson j****n@e****h 1
and 37 more...

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 119
  • Total pull requests: 210
  • Average time to close issues: 10 months
  • Average time to close pull requests: 17 days
  • Total issue authors: 53
  • Total pull request authors: 17
  • Average comments per issue: 3.5
  • Average comments per pull request: 1.48
  • Merged pull requests: 194
  • Bot issues: 0
  • Bot pull requests: 5
Past Year
  • Issues: 5
  • Pull requests: 17
  • Average time to close issues: 4 days
  • Average time to close pull requests: 6 days
  • Issue authors: 4
  • Pull request authors: 3
  • Average comments per issue: 2.8
  • Average comments per pull request: 1.06
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
  • 1uc (49)
  • alkino (6)
  • tdegeus (5)
  • jjcasmar (5)
  • VictorEijkhout (4)
  • emmenlau (3)
  • PhilipDeegan (2)
  • nickanthony-dgl (2)
  • aminiussi (2)
  • ferdonline (2)
  • L0ric0 (2)
  • kerim371 (2)
  • ohm314 (2)
  • antonysigma (2)
  • ccorti87 (1)
Pull Request Authors
  • 1uc (248)
  • alkino (32)
  • github-actions[bot] (8)
  • ferdonline (3)
  • Quark-X10 (3)
  • unbtorsten (3)
  • tpongo-afk (2)
  • LauZanMo (2)
  • ischoegl (2)
  • alexsavulescu (1)
  • luohancfd (1)
  • WeinaJi (1)
  • nathan-mxr (1)
  • HunterBelanger (1)
  • matz-e (1)
Top Labels
Issue Labels
v3 (16) enhancement (15) cmake (6) ci (6) String (5) bug (4) H5Easy (3) Eigen (3) ready (3) testing (2) help wanted (2) good first issue (2) New Type System (1) Parallel HDF5 (1) waiting for upstream (1) HDF5 Type System (1) windows (1)
Pull Request Labels
v3 (14) H5Easy (1)

Dependencies

.github/workflows/check_doxygen_awesome_version.yml actions
  • actions/checkout v2 composite
.github/workflows/ci.yml actions
  • actions/checkout v3 composite
  • mamba-org/provision-with-micromamba main composite
  • mpi4py/setup-mpi v1 composite
.github/workflows/clang_format.yml actions
  • actions/checkout v3 composite
.github/workflows/coverage.yml actions
  • actions/checkout v3 composite
  • codecov/codecov-action v3 composite
.github/workflows/gh-pages.yml actions
  • actions/checkout v3 composite
  • crazy-max/ghaction-github-pages v2 composite
  • mamba-org/provision-with-micromamba main composite
.github/workflows/integration_trigger.yml actions
doc/environment.yaml pypi