https://github.com/hdfgroup/hdf5-boneyard
HDF5 extension skeletons, literally
https://github.com/hdfgroup/hdf5-boneyard
Last synced: 24 days ago
JSON representation
HDF5 extension skeletons, literally
- Host: GitHub
- URL: https://github.com/hdfgroup/hdf5-boneyard
- Owner: HDFGroup
- License: bsd-3-clause
- Created: 2026-04-23T12:43:20.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-24T19:31:00.000Z (2 months ago)
- Last Synced: 2026-05-19T20:49:47.687Z (about 1 month ago)
- Language: C
- Size: 70.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
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
```sh
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
```text
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`](docs/choosing-a-skeleton.md) if you are not sure which extension
point to use.