You're reading the documentation for a development version. For the latest stable documentation, please have a look at v5.1.X. For the latest pre-release documentation, please have a look at v6.0.0-alpha.2.

Changing the CAPI

The CADET-Core C API is designed to provide a stable and user-friendly interface for users who want to interact with CADET-Core from other programming languages. One example for this is the implementation of the CADET-Python software, which implements a Python interface to CADET-Core using the C API.

An example for a change to the C API is given by the CADET-Core PR #366 and corresponding CADET-Python companion PR #71.

General Requirements

  • Changes to the CAPI should be made with care, as they can potentially break the interface for users of the C API and thus must be made backwards compatible or require a major CADET-Core version bump.

  • For backwards compatibility, multiple versions of the C API can be maintained in parallel, see e.g. the various minor, patch or pre-release versions in CAPIv1.cpp.

  • Every change to the CAPI must bump the C API version, which is defined in cadet/LibVersionInfo.hpp.

  • Part of updating the C API is to implement the corresponding support in CADET-Python.

  • Before a change to the C API is merged, it must be tested by implementing a test case in CADET-Python that uses the new C API functionality and ensures that it works as expected.