.. include:: ../../router.1.0/srcDoc/vars.rst .. _section-sdk: ************************ Software Development Kit ************************ You can extend the out-of-the-box behavior of *Recording Service* through its *Software Development Kit* (SDK). The SDK provides a set of public interfaces that allow you to control *Recording Service* 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 *Recording Service* instances in your application. This allows you to run *Recording Service* as a library. - *RTI Recording Service* Storage API: |br| *Storage* is a pluggable component that allows *Recording Service* 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, *Recording Service* 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 *Recording Service*. 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_c_api:`RTI Recording Service C API <>` - - Storage - Transformation (see :link_router_sdk_api_c:`RTI Routing Service C API <>`) * - :link_cpp_api:`RTI Recording Service C++ API <>` - - Service - Storage - Transformation (see :link_router_sdk_api_cpp:`RTI Routing Service C++ API <>`)