Manual

Native C and C++ SDK

Integrate the native SDK, stable C ABI, C++ wrapper, transports, and direct media upload.

Install and link

The release archive contains librtk_cloud_client.a, public headers, and CMake package metadata exporting rtk::cloud_client. Configure the required platform and TLS callbacks, then link the imported target. Include rtk_cloud_client/rtkc.h for C or rtk_cloud_client/rtkc.hpp for the header-only C++ wrapper.

ABI conventions

Initialize every public request structure with its matching rtkc_*_init function so struct_size, defaults, and reserved fields are correct. Treat client and session handles as opaque. Pair SDK allocations with the documented release function and do not retain callback views after callback return.

Client lifecycle

Create rtkc_client_t with validated endpoint, authentication, callback, transport, timeout, and platform configuration. Create or attach sessions beneath the client, connect, drive event processing using the documented blocking entry points, disconnect, destroy the session, and finally destroy the client.

HTTP and device operations

The public client includes token, device lifecycle, configuration, event, log, command, telemetry, firmware, snapshot, media, and WebRTC signaling helpers. JSON-returning functions populate rtkc_json_document_t; inspect status before reading the document and release it using its matching API.

Streaming direct clip upload

Use rtkc_client_authorize_direct_clip_upload, then populate rtkc_presigned_stream_put_request_t with the HTTPS URL, signed headers, exact body size, read callback, progress callback, cancellation callback, user data, and buffer size. Call rtkc_client_put_presigned_object_stream, complete with rtkc_client_complete_direct_clip_upload, and query readiness with rtkc_client_get_direct_clip_upload.

Only HTTPS presigned URLs are accepted. The object-storage request must contain no Video Cloud bearer token. The read source must produce exactly body_size bytes and remain valid for the synchronous call.

Validation

Build with CMake and run CTest. The package smoke project validates installed headers, library, and CMake metadata. Run platform transport tests and the deployed-server harness separately when credentials and an approved environment are available.

Other manual chapters

Continue with related manual sections.

SDK overview

Choose the right package and understand support boundaries.

Open section

Getting started

Install an SDK, configure a client, and complete a first request.

Open section

Authentication and security

Handle bearer tokens, PKI, TLS, keys, and sensitive media safely.

Open section

Lifecycle and errors

Apply timeout, retry, cancellation, callback, and shutdown rules.

Open section

Capability workflows

Integrate provisioning, devices, telemetry, OTA, commands, and signaling.

Open section

Video Cloud workflows

Integrate Live WebRTC signaling and encrypted stored-video upload, browsing, and playback.

Open section

Android Kotlin SDK

Use Kotlin APIs, coroutines, Media3 playback, and secure key providers.

Open section

iOS Swift SDK

Use Swift APIs, async operations, AVPlayer, Keychain, and Secure Enclave boundaries.

Open section

JavaScript and TypeScript SDK

Integrate the typed ESM package in browser and Node.js applications.

Open section

Go SDK

Use the pure Go client for devices, tools, and automation.

Open section

FreeRTOS and Pro2 SDK

Integrate board adapters, device transport, and WebRTC answerer boundaries.

Open section

Sample applications

Build and use the Android, iOS, Web, Linux, and Pro2 reference samples.

Open section

Troubleshooting and compatibility

Diagnose common integration problems and identify deprecated behavior.

Open section