Using External Native Plugin Filters
The HDF5 C library has a filter plugin mechanism. Plugins are shared libraries located in /usr/local/hdf5/lib/plugin
or as specified by $HDF5_PLUGIN_DIR
.
using HDF5.Filters
bitshuf = ExternalFilter(32008, Cuint[0, 0])
bitshuf_comp = ExternalFilter(32008, Cuint[0, 2])
data_A = rand(0:31, 1024)
data_B = rand(32:63, 1024)
filename, _ = mktemp()
h5open(filename, "w") do h5f
h5f["ex_data_A", chunk=(32,), filters=bitshuf] = data_A
d, dt = create_dataset(h5f, "ex_data_B", data_B, chunk=(32,), filters=[bitshuf_comp])
write(d, data_B)
end