Skip to content

Changelog

All notable changes are documented here. RTCstack follows Semantic Versioning.


Unreleased — Native Mobile (preview)

Native iOS and Android SDKs + UI kits that mirror the @rtcstack/sdk contract and interoperate with web clients in the same room. Both SDKs compile against their pinned LiveKit dependencies and the cross-platform wire-format conformance tests pass (Android 7/7, iOS 6/6). Device-level features are implemented but pending a real-device QA pass; packages are not yet published to CocoaPods / Maven Central. See the Mobile guide.

iOS (RTCstackKit / RTCstackUI)

  • RTCstack.createCallCall wrapping client-sdk-swift 2.14.1; Combine @Published state + events publisher
  • Connection/media/messaging parity with the web SDK; JWT expiry parse + tokenRefresher
  • AudioSessionManager (AVAudioSession), CallKitAdapter + VoIPPushManager + CallCoordinator (report-before-return, CallKit-owned audio activation)
  • ReplayKit screen share: Broadcast Upload Extension template + BroadcastPickerView
  • RTCstackUI SwiftUI kit on components-swift 0.1.7: VideoConferenceView, grid, control bar, chat; .rtcstackTheme() tokens
  • Swift Package + CocoaPods podspec; iOS 15.0+

Android (com.rtcstack:sdk / com.rtcstack:ui-compose)

  • RTCstack.createCallCall wrapping livekit-android 2.24.1; StateFlow state + SharedFlow events
  • RTCstackCallService typed foreground service; audio focus + MODE_IN_COMMUNICATION routing
  • IncomingCallManager (FCM + full-screen-intent notification); ScreenShareLauncher (MediaProjection consent + FGS promotion)
  • ui-compose kit on livekit-android-compose-components 2.3.0: VideoConference, grid, control bar, chat; RTCstackTheme tokens
  • Consumer ProGuard rules + manifest-merged FGS/permissions; Gradle multi-module AAR; API 24+

Docs / site

  • New Native Mobile guide section (Overview, iOS, Android)
  • Canonical GitHub repository URL updated to github.com/radioBros/RTCstack

v0.1.0 — 2026-04-21

Initial release.

Infrastructure

  • Docker Compose stack: LiveKit SFU, LiveKit Egress, coturn TURN, Caddy TLS proxy, Redis, MinIO
  • All services use pinned image versions with Docker healthchecks
  • docker/.env.example with all required variables documented

Backend API

  • POST /v1/token — sign LiveKit JWTs with role-based grants (host, moderator, participant, viewer)
  • POST /v1/token/refresh — refresh near-expiry tokens
  • GET/POST/DELETE /v1/rooms — room lifecycle management
  • GET/DELETE /v1/rooms/:roomId/participants/:id — participant list, kick
  • POST /v1/rooms/:roomId/participants/:id/mute — mute audio or video
  • POST/GET /v1/rooms/:roomId/recording/start|stop — composite MP4 recording via LiveKit Egress
  • POST/GET/PUT/DELETE /v1/webhooks — webhook config CRUD with HMAC-signed delivery and retry backoff
  • POST/GET/DELETE /v1/rooms/:roomId/ingress — RTMP/WHIP ingress via LiveKit IngressClient
  • GET/POST /v1/rooms/:roomId/transcription/* — live + post-call transcription (requires STT profile)
  • HMAC-SHA256 request signing with 5-minute replay protection window
  • Rate limiting via @fastify/rate-limit

SDK (@rtcstack/sdk)

  • createCall({ token, url, tokenRefresher? }) — factory returning a Call instance
  • Call class wrapping livekit-client: connect, disconnect, toggleMic, toggleCamera, startScreenShare, stopScreenShare, switchDevice, sendMessage, sendReaction, setLayout, pin
  • Typed EventEmitter with full CallEventMap
  • MockCall + createMockCall() for testing without a LiveKit server
  • Bundle ≤ 80 kB gzipped

UI Kits

  • @rtcstack/ui-react — CallProvider, 7 hooks, 5 components (VideoConference, VideoGrid, ControlBar, ChatPanel, ParticipantVideo), CSS design tokens, dark/light themes
  • @rtcstack/ui-vue — CALL_KEY injection, 7 composables, 5 SFC components
  • @rtcstack/ui-vanillamountVideoConference() imperative API

Example Apps

  • apps/examples/react-example — Vite + React 18, join form, role selector
  • apps/examples/vue-example — Vite + Vue 3, join form, role selector
  • apps/examples/vanilla-example — No-framework HTML + Vite

Website

  • VitePress documentation site with full guide coverage
  • Local search