HDF5-UDF comes with three backends, each of which requiring different pieces of software to allow the embedding of bytecode and their execution:
Lua
: requires the LuaJIT packagePython
: requires the CFFI moduleC/C++
: requires the GNU C++ compiler
It is possible to compile the code so that only a restricted number of system calls can be executed by the user-defined functions. We rely on two packages to limit what the UDF process can do:
- The libseccomp library
- The syscall_intercept library
Please follow your distribution instructions to install these packages. Also, make sure that you install both regular and development packages.
Simply run make
followed by make install
, optionally providing an alternative
destination directory other than /usr/local
:
$ make
$ make install DESTDIR=/installation/path
By default, make
will attempt to build all backends and to compile the HDF5
filter with support for system call filtering. It is possible to disable
features by providing the following arguments to make
:
OPT_SANDBOX=0
: disable support for system call filteringOPT_PYTHON=0
: disable Python backendOPT_LUA=0
: disable Lua/LuaJIT backendOPT_CPP=0
: disable C/C++ backend