An open API service indexing awesome lists of open source software.

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

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.