# Interfacing with HELICS

The HELICS framework allows other tool developers to add HELICS
components to enable co-simulation. Interfacing with HELICS can be done
using the C++ Application API or the C Shared Library API. Developers
familiar with HELICS and the HELICS Application API can interface with
HELICS using the C++ Application API. HELICS also provides an additional
well defined C API built as a shared library that can be easily interfaced
with from other tools. This C interface also supports easier integration with
tools developed in other languages. Developers can easily integrate
HELICS into their application using the C Shared Library API using FFI.

In addition, the team has leveraged a development tool called SWIG to
build interfaces in the high level programming languages listed below.

- Python (3 and 2)
- MATLAB
- Java
- Octave
- C#

SWIG allows cross platform support, i.e. extensions will work for
Windows, Mac and Linux. The user does not necessarily need to install
SWIG, the extension code is generated by the developers of HELICS and is
only required to be built on the user end. The CMake build process
includes targets for the Python, MATLAB and Java extensions. Other
languages can be supported in the future. If you have a language
requirement, please contact the developers.
