.. include:: vars.rst .. _section-sdk: ************************ Software Development Kit ************************ You can extend the out-of-the-box behavior of |RECS| through its *Software Development Kit* (SDK). The SDK provides a set of public interfaces that allow you to control |RECS| execution as well as extend its capabilities. The SDK is divided into the following modules: - *RTI Recording Service* Service API: |br| This module offers a set of APIs that allow you to instantiate |RECS| instances in your application. This allows you to run |RECS| as a library. - *RTI Recording Service* Storage API: |br| *Storage* is a pluggable component that allows |RECS| to write and read data from custom storage. This module offers a set of pluggable APIs to develop custom *StorageWriter* and *StorageReader*, which you can use through shared libraries or through the Service API. By default, |RECS| is distributed with a builtin SQLite® storage plugin that is part of the service library. - *RTI Recording Service* Transformation API: |br| |TRANSF|\s are data-oriented pluggable components that allow you to perform conversions of the representation and content of the data that goes through |RECS|. This module offers a set of pluggable APIs to develop a custom |TRANSF|\s, which you can use through shared libraries or through the Service API. :numref:`TableSdkDocumentation` shows which modules are available for each API, along with links to the API documentation. .. list-table:: API Documentation for the SDK :name: TableSdkDocumentation :header-rows: 1 * - Language API - Available Modules * - :link_recorder_sdk_api_c_s:`RTI Recording Service C API ` - - Storage - Transformation (see :link_router_sdk_api_c_s:`RTI Routing Service C API `) * - :link_recorder_sdk_api_cpp_s:`RTI Recording Service C++ API ` - - Service - Storage - Transformation (see :link_router_sdk_api_cpp_s:`RTI Routing Service C++ API `)