HDFGroup/hdf5-boneyard

HDF5 extension skeletons, literally

★ 0Forks 0CGitHub ↗Compare

README

HDF5 Boneyard

This repository contains buildable skeletons for HDF5 library extensions:

  • HDF5 filters
  • terminal and non-terminal virtual file drivers (VFDs)
  • terminal and non-terminal virtual object layer (VOL) connectors

Each extension family has basic, intermediate, and advanced skeletons. The skeletons are intentionally small and heavily commented so they can be copied into a real project and customized.

Build

cmake -S . -B build
cmake --build build
ctest --test-dir build --output-on-failure

The examples are registered as CTest tests. They set HDF5_PLUGIN_PATH to the build tree's plugin directory and print trace messages from extension callbacks. They also compile and statically register the same skeleton source so the test suite works with HDF5 builds that expose plugin headers but were built without dynamic plugin loading support.

Layout

skeletons/
  filters/
    basic/
    intermediate/
    advanced/
  vfds/
    terminal/
      basic/
      intermediate/
      advanced/
    nonterminal/
      basic/
      intermediate/
      advanced/
  vols/
    terminal/
      basic/
      intermediate/
      advanced/
    nonterminal/
      basic/
      intermediate/
      advanced/

Each skeleton directory contains a local CMakeLists.txt, public header, implementation source, and a runnable example.

Start with docs/choosing-a-skeleton.md if you are not sure which extension point to use.

Contributors

gheber

Issues