I’m thrilled to announce that a new major release of User-Defined Functions for HDF5 is now available. If you haven’t heard of it before, HDF5-UDF is a tool that allows embedding routines written in C/C++, Python or Lua on HDF5 files in a way that such routines execute each time the dataset is read.
This is a major improvement over the previous version and comes with so many good things it’s hard to believe! Here are some of the good bits:
UDF signing: UDFs are now automatically signed when saved to HDF5. When a user reads that UDF dataset for the first time, we extract and associate the public key behind that UDF to a trust profile that limits which system calls that UDF can execute – and which file system paths it can access.
UDF library: HDF5-UDF is now available as a library so you no longer have to use the
hdf5-udfcommand-line utility to attach your UDFs to HDF5 files.
Python bindings: it’s now possible to programmatically compile and store UDFs from Jupyter Notebooks and regular Python scripts
Source code storage: by default, HDF5-UDF compiles the source code and stores its resulting bytecode on the HDF5 file. Now it’s also possible to include the source code so the UDF can be modified and recompiled in the future.
New build system: we now use the
Ninjabuild system to compile and install the code from its source code.
Please refer to the project page at GitHub for download instructions and more details on the project. Feedback is welcome as usual!