.. _language_bindings:

Language Bindings
=================

**CosmicSDK** is primarily a C++ library, but it is designed to be easily integrated into projects using other languages as well. Below are examples of how you can integrate CosmicSDK with C, C#, Python, and Java.

- C and C++ built-in support.
- C# Integration. See `examples/language_bindings/csharp`.
- Python Integration. See `examples/language_bindings/python`.
- Java Integration. See `examples/language_bindings/java`.

All examples include basic usage of the CosmicSDK, such as configuring I2C parameters, performing writes, and reading data.
- C#, Python and Java Examples: These examples include wrappers around the CosmicSDK that adapt the C/C++ library into the conventions and data types of their respective languages. The C#, Python and Java content are reference integrations built on top of the C shared library and should be treated as integration examples rather than official SDK packages.
- C and C++ Examples: These examples demonstrate direct SDK usage and include their respective CMakeLists.txt files to guide integration into your own projects. Use them as templates to incorporate CosmicSDK into your workflows efficiently.

.. note::
   
   **PATH** Setup: Some of this examples require the CosmicSDK DLLs and HIDAPI DLLs are set in the system PATH, namely C, C++ and C#. Remember to set these paths in your system before proceeding.


.. toctree::
   :maxdepth: 1

   c
   python
   csharp
   java
