Expand description

This is a Rust binding of bitshuffle HDF5 filter. Some HDF5 files use this not standard plugin bitshuffle (mainly produced by the Dectris Eiger detectors). This crate makes a binding for Rust.

To use this plugin just call in your code before using any HDF5 API:

use hdf5_bitshuffle::register_bitshuffle_plugin;

fn main() {

Or, if you want more control, you can call it manually:

use std::sync::Once;
use hdf5_bitshuffle::bshuf_register_h5filter;

static REGISTER_BITSHUFFLE: Once = Once::new();

fn main() {
    unsafe {
        REGISTER_BITSHUFFLE.call_once(|| {
                if bshuf_register_h5filter() < 0 {
                    panic!("Could not register bitshuffle plugin for HDF5");


Unsafe function to registers the bitshuffle plugin.

Convenient safe rust function to register the bitshuffle plugin. It just panics if it fails.