Bug#1020772: ITP: trexio -- TREX I/O library and data format to exchange the quantum chemistry data.
Owner: Evgeny <firstname.lastname@example.org>
* Package name : trexio
Version : 2.2.0
Upstream Author : Evgeny Posenitskiy <email@example.com>
* URL : https://github.com/TREX-CoE/trexio
* License : (BSD)
Programming Lang: (C, C++, Fortran, Python)
Description : TREX I/O library and data format to exchange the quantum chemistry data.
The TREXIO library is an open-source software for the quantum chemistry community. It allows
to efficiently write and read data in a common format using the default back end which relied
on the HDF5 library.
TREXIO has been developed within the TREX-CoE project and it is now a hard dependency
of several scientific codes including Quantum Package, QMC=Chem, CHAMP, GammCor, QMCkl etc.
Moreover, TREXIO has bindings in the OCaml programming language and having a Debian package
for it would simplify the installation experience for OCaml users.
For now, it would be nice to package at least the C library with the Fortran binding as these
are the most commonly used ones. Having a C library installed via Debian will simplify a lot
development of binding with languages like Rust, OCaml and Julia.
The build system relies on Autotools to build and install the shared C library `libtrexio`.
It provides additional `m4` macros to detect the HDF5 library and some other dependencies.
We can already produce debian package on the user machine and I wrote a short README about
it here: https://github.com/TREX-CoE/trexio/blob/master/debian/README.md. It requires only
the Autotools-generated distribution tarball.
TREXIO default dependencies are (when building from the distribution tarball, not from the
GitHub repository clone):
- C compiler (gcc/icc/clang)
- Autotools (autoconf >= 2.69, automake >= 1.11, libtool >= 2.2) or CMake (>= 3.16)
- Fortran compiler (gfortran/ifort) [can be disabled at the `configure` time]
- HDF5 library (>= 1.8) for high-performance I/O [can be disabled at the `configure` time]
This package can be particularly interesting for the Debichem team
(https://wiki.debian.org/Debichem) and, in particular,
for the *Input prepataion and output processing* subsection:
To the best of our knowledge, TREXIO is the first package that attemps to unify data exchange.
However, there are some Python packages like `cclib` that can parse the output of some
chemistry programs and convert them into other formats. However, they do not provide a uniform
API that can be used within the chemistry programs to *a priori* write/read data in a common
As this is my first packaging attempt, I do not know about the best practices and would
appreciate any piece of advice.