Skip to main content

SDK Overview

EthioConnect provides official SDKs for server-side and client-side integration. The SDKs handle authentication, room management, WebSocket signaling, media connections, and QoS telemetry.

Available SDKs

SDKPackageRuntimePurpose
Server SDK@comm-baas/server-sdkNode.js 18+Token minting, room management, analytics, billing. Authenticates with a tenant API key.
Client SDK@comm-baas/client-sdkBrowserREST API access and WebSocket signaling with session resume. Authenticates with a JWT.
React@comm-baas/reactBrowser (React 18+)Declarative hooks and providers wrapping the client SDK.
SwiftCommBaaS (SPM)iOS 16+, macOS 13+Native iOS client with async/await, LiveKit media, and QoS telemetry.
Androidcom.commbaas:sdk (Maven)Android API 26+Native Android client with Kotlin coroutines, LiveKit media, and QoS telemetry.
Flutter (Dart)commbaas (in-repo; pub.dev planned)Flutter 3 (iOS, Android)Native Dart client with typed resource facades, WebSocket signaling with session resume, LiveKit media, and QoS telemetry.

Architecture

Your Backend Client Apps
============ ===========
@comm-baas/server-sdk @comm-baas/client-sdk (browser)
@comm-baas/react (React)
CommBaaS (iOS)
com.commbaas:sdk (Android)
commbaas (Flutter)
| |
| API Key auth | Bearer JWT auth
v v
EthioConnect API <-- types --> EthioConnect API
|
| WebSocket signaling
v
LiveKit SFU (media)

The server SDK runs on your backend and holds the tenant API key. It mints short-lived JWTs for end users. Client SDKs (browser, iOS, Android, Flutter) authenticate with those JWTs and manage WebSocket signaling and media connections.

Versioning

All JavaScript packages (@comm-baas/types, @comm-baas/server-sdk, @comm-baas/client-sdk, @comm-baas/react) follow lockstep versioning to guarantee type compatibility. Mobile SDKs are versioned independently but maintain API contract compatibility.

Next Steps