1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#########
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
|