HDFql
the easy way to manage HDF5 data
Join the many research organizations, data-driven corporations, and universities across the globe who use HDFql. It’s free.
FEATURES
Simple
Designed to be as simple as SQL. Hides complex operations and frees users from HDF5 low-level details
Reliable
Unfailing robustness and reliability. HDFql is checked against hundreds of existing tests before new versions are released
Clean
Offers a clean interface requiring just a few intuitive statements even for complex operations. Gone are the days where HDF5 required endless lines of code
Writes
Unlike other tools, HDFql not only reads HDF5 but also allows you to write HDF5 data
Fast
Processes data using all nodes and cores available. This means much higher volumes of data may be (pre-/post-) processed in the same amount of time
Portable
Portable across C, C++, Java, Python, C#, Fortran and R using one uniform high-level (declarative) language
Intuitive
Based on models of human cognition and natural language. Fast learning curve
Platforms
Supports Windows, Linux, macOS
FROM NINETEEN TO JUST TWO LINES OF CODE
HDFql is the first high-level (declarative) language to manage HDF5 data. Designed to be as simple and powerful as SQL, it dramatically reduces the learning effort and time needed to handle HDF5. Built on intuitive syntax, HDFql offers a clean interface which reads and writes HDF5 data across programming languages and platforms.
Not only that, HDFql is so easy that even first time users instantly get it. Because it is based on natural language, you just tell HDFql what to do. This is in stark contrast to other APIs, which require users to specify all the intricate details of how to handle HDF5. That is how HDFql enables users to go from 19 lines of highly complex code to just 2 lines of simple code.
As an example, imagine that you need to create an HDF5 file named “my_file.h5” and, inside it, a group named “my_group” containing a one dimensional (size 3) dataset named “my_dataset” of data type integer. Additionally, the dataset is compressed using ZLIB and initialized with values 4, 8 and 6. In HDFql, this can easily be implemented as follows:
create and use file my_file.h5
create dataset my_group/my_dataset as int(3) enable zlib values(4, 8, 6)
create dataset my_group/my_dataset as int(3) enable zlib values(4, 8, 6)
In contrast, using the C API on the same example is quite cumbersome:
hid_t file;
hid_t group;
hid_t dataspace;
hid_t property;
hid_t dataset;
hsize_t dimension;
int value[3];
file = H5Fcreate("my_file.h5", H5F_ACC_EXCL, H5P_DEFAULT, H5P_DEFAULT);
group = H5Gcreate(file, "my_group", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
dimension = 3;
dataspace = H5Screate_simple(1, &dimension, NULL);
property = H5Pcreate(H5P_DATASET_CREATE);
H5Pset_chunk(property, 1, &dimension);
H5Pset_deflate(property, 9);
dataset = H5Dcreate(group, "my_dataset", H5T_NATIVE_INT, dataspace, H5P_DEFAULT, property, H5P_DEFAULT);
value[0] = 4;
value[1] = 8;
value[2] = 6;
H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &value);
hid_t group;
hid_t dataspace;
hid_t property;
hid_t dataset;
hsize_t dimension;
int value[3];
file = H5Fcreate("my_file.h5", H5F_ACC_EXCL, H5P_DEFAULT, H5P_DEFAULT);
group = H5Gcreate(file, "my_group", H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
dimension = 3;
dataspace = H5Screate_simple(1, &dimension, NULL);
property = H5Pcreate(H5P_DATASET_CREATE);
H5Pset_chunk(property, 1, &dimension);
H5Pset_deflate(property, 9);
dataset = H5Dcreate(group, "my_dataset", H5T_NATIVE_INT, dataspace, H5P_DEFAULT, property, H5P_DEFAULT);
value[0] = 4;
value[1] = 8;
value[2] = 6;
H5Dwrite(dataset, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, &value);
USERS
ABOUT
HDFql was launched by a team of interdisciplinary experts with vast experience from CERN, global Fortune 50 industry and world-renowned research facilities. We believe managing (scientific) data should be simple and fast, and we’re especially passionate about the promises of machine learning in cleantech, healthtech and science.
DOCUMENTATION
QUICK START
REFERENCE MANUAL
LICENSE
RELEASE NOTES
NEWS
HDF GROUP BLOG
DOWNLOAD
Architecture | Serial/Parallel | File |
32 bit | Serial | HDFql-2.5.0_Windows32.zip |
64 bit | Serial | HDFql-2.5.0_Windows64.zip |
Architecture | Serial/Parallel | File |
32 bit | Serial | HDFql-2.5.0_Linux32.zip |
32 bit | Parallel (MPICH) | HDFql-2.5.0_Linux32_MPICH-3.2.zip |
32 bit | Parallel (Open MPI) | HDFql-2.5.0_Linux32_OpenMPI-2.1.zip |
64 bit | Serial | HDFql-2.5.0_Linux64.zip |
64 bit | Parallel (MPICH) | HDFql-2.5.0_Linux64_MPICH-3.2.zip |
64 bit | Parallel (Open MPI) | HDFql-2.5.0_OpenMPI-2.1.zip |
Architecture | Serial/Parallel | File | |
64 bit | Serial | HDFql-2.5.0_Darwin64.zip | |
64 bit | Parallel (MPICH) | HDFql-2.5.0_Darwin64_MPICH-3.2.zip | |
64 bit | Parallel (Open MPI) | HDFql-2.5.0_Darwin64_OpenMPI-2.1.zip | |
CONTACT
Reach out to us at or simply use this form
We are always glad to hear from you!
We are always glad to hear from you!