# 3 Usage

After following the instructions provided in the chapter [INSTALLATION](2-installation.md), HDFql is ready for use. It can be used programmatically in C, C++, Java, Python, C#, Fortran, R, and MATLAB through shared libraries and wrappers, and finally through a command-line interface named “HDFqlCLI”. Moreover, on Linux and macOS, programs written in these programming languages may manipulate HDF5 files both in serial and in parallel[^1] [^2], as distributions of HDFql built with the serial HDF5 library and the parallel HDF5 (PHDF5) library are available for these platforms. The subsequent sections provide guidance on usage and basic troubleshooting information to solve issues that may arise.

[^1]: Through MPICH (or, alternatively, one of its ABI compatible derivative libraries, such as Intel MPI, Cray MPT, MVAPICH2, Parastation MPI, and RIKEN MPI) or Open MPI. Both MPICH and Open MPI are freely available, high-performance, and widely portable implementations of the Message Passing Interface (MPI), a standard for message passing for distributed memory applications used in parallel computing. Please refer to the websites [https://www.mpich.org](https://www.mpich.org/) and [https://www.open-mpi.org](https://www.open-mpi.org/) for additional information.
[^2]: This option is not available on Windows as HDFql does not currently support the parallel HDF5 (PHDF5) library on this platform.

## In this section

- [3.1 C](3-1-c.md)
- [3.2 C++](3-2-cpp.md)
- [3.3 Java](3-3-java.md)
- [3.4 Python](3-4-python.md)
- [3.5 C#](3-5-csharp.md)
- [3.6 Fortran](3-6-fortran.md)
- [3.7 R](3-7-r.md)
- [3.8 MATLAB](3-8-matlab.md)
- [3.9 Command-line Interface](3-9-command-line-interface.md)
