[Nexus] NAPI future
Koennecke Mark (PSI)
mark.koennecke at psi.ch
Thu Oct 22 15:08:40 BST 2020
Dear NeXus-API users,
The NeXus International Advisory Committee (NIAC) is contemplating dropping support for the NeXus-API (NAPI, https://manual.nexusformat.org/napi.html?highlight=napi ),
his is a library for accessing NeXus data files. Before we make a decision, we would like to determine how many people are still using it. If you still rely on this API,
please let the NIAC know! In order to focus our efforts better, we would also like to have some information about which parts of NAPI are still used.
But first some history: The NeXus-API was conceived shortly after the inception of NeXus as a means to simplify the access to files in the then prevalent HDF4 format. The HDF4 API is very complex and NAPI abstracted a lot of that complexity away. At that time the NAPI was a major selling point for NeXus.
Years later the HDF group presented HDF-5 and it was felt that the NAPI should support HDF-5 too. And this being a transition period, it should support both HDF4 and HDF5 transparently. Consequently the NAPI was refactored to allow other file formats and HDF5 was integrated.
Some more years later, the community wished to have a human readable ASCII version of the NeXus file format. XML was in favour at the time and thus NAPI was extended to support an XML version of NeXus using the mxml library.
Moving to the current day, the simpler HDF5 native interface and python packages such as h5py means many people are writing NeXus format files directly with these interfaces rather than using NAPI. This lead to the decision by the NIAC to place the NAPI in maintenance only mode.
The NAPI now requires some attention, most notably to make it work with newer versions of the underlying libraries such as mxml-3.x which introduced a breaking API change and is now present on many recent linux distributions. We are preparing a new NAPI release to address this. But the NIAC as an organization is relying on volunteers to get its work done and is hard pressed to maintain NAPI, so we wish to determine where best to divert our efforts.
To help the NIAC make the most informed decisions, please could you answer a few questions. Please place an X between the square brackets in order to mark statements which apply.
Abandoning the support for NAPI for bugfix or compatibility with future linux/library/compiler versions will cause me problems at the following level:
 Critical: I am using NAPI in critical data acquisition or data reduction/analysis software
 Major: important applications may not be usable at some future date
 Minor: inconvenience, I have alternatives/can live with this
 None: either i am not using NAPI, or I have copies of all the dependencies that I build/maintain myself
 I want the NIAC to continue developing NAPI and make it support more HDF5 features. Please list the
HDF5 feature you miss in NAPI.
Which of the NAPI file format bindings do you use:
Which of the NAPI language bindings do you use?
 Swig generated bindings to Tcl, perl, ...
Which of the NAPI utilities do you use?
 I am willing to help maintain NAPI
The NeXus validator: cnxvalidate, is missing in this list. This is a separate product to NAPI and the NIAC is committed to maintaining it. It uses the HDF5 API directly rather than NAPI.
Thank you for your time filling in this questionnaire!
Please send replies to nexus-committee at nexusformat.org
If you have further concerns or comments regarding the NAPI, please inform your NIAC representative - these are listed at https://www.nexusformat.org/NIAC.html
If your facility is using NeXus, but has no representation on the NIAC, please consider joining the NIAC.
on behalf of the NIAC
More information about the NeXus