######### Full APIs ######### .. note:: Application developers who desire fine-grained control of IO tasks should use the Full APIs. In simple cases (e.g. reading a file for analysis, interactive Python, or saving some data for a small project or tests) please refer to the :ref:`High-Level APIs`. Currently ADIOS2 support bindings for the following languages and their minimum standards: +----------+----------+-------------------------+ | Language | Standard | Interface | +----------+----------+-------------------------+ | | 11/newer | ``#include adios2.h`` | | C++ | | | | | older | use C bindings | +----------+----------+-------------------------+ | C | 99 | ``#include adios2_c.h`` | +----------+----------+-------------------------+ | Fortran | 90 | ``use adios2`` | +----------+----------+-------------------------+ | | 2.7 | ``import adios2`` | | Python | | | | | 3 | ``import adios2`` | +----------+----------+-------------------------+ .. tip:: Prefer the C++11 bindings if your application C++ compiler supports the 2011 (or later) standard. For code using previous C++ standards (98 or 03) use the C bindings for ABI compatibility. .. caution:: Statically linked libraries (``*.a``) might result in conflicting ABIs between an older C++ project, the C bindings, and the adios native C++11 library. Test to make sure it works for your platform. The current interaction flow for each language binding API with the ADIOS2 library is specified as follows .. blockdiag :: diagram { default_fontsize = 22; default_shape = roundedbox; default_linecolor = blue; "ADIOS2" -> "C++11", C, Python; C -> Fortran, Matlab; "ADIOS2"[width = 200, height = 60] group{ label = "C++11 Library" color = orange "ADIOS2"; } group{ label = "Language bindings APIs" color = yellow "C++11", C, Python, Fortran, Matlab; } } The following sections provide a summary of the API calls on each language and links to Write and Read examples to put it all together. .. include:: cxx11.rst .. include:: fortran.rst .. include:: c.rst