Skip to content

needletails/pqs-rtc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PQSRTC

PQSRTC is a cross-platform real-time communications (RTC) core designed for Apple platforms (Swift) and Android (Kotlin) via Skip.

It provides WebRTC session orchestration, call state/state-machine helpers, and optional frame-level end-to-end encryption (E2EE) primitives.

Platforms

  • Apple: iOS 18+, macOS 15+ (via Swift Package Manager)
  • Android: via Skip transpilation (Swift → Kotlin)

Installation

Add this package to your app via Swift Package Manager (Xcode: File → Add Packages…) and import PQSRTC.

Quick start (Swift)

At the core is RTCSession, which requires your app to provide a transport delegate for exchanging offers/answers/ICE with your signaling layer.

import PQSRTC

let transport: RTCTransportEvents = /* your transport implementation */

let session = RTCSession(
	iceServers: ["stun:stun.l.google.com:19302"],
	username: "",
	password: "",
	delegate: transport
)

For multiparty, use RTCGroupCall (SFU-style) instead of building N×(N-1) peer connections.

Building

Apple (SwiftPM)

swift build
swift test

Android (Skip)

Install Skip with Homebrew:

brew install skiptools/skip/skip

Skip will install the required prerequisites (Kotlin/Gradle/Android tooling) and can run parity tests:

skip android test

Testing

  • swift test runs the compiled Swift test suite on macOS.
  • skip android test can run cross-platform parity testing (Swift + transpiled Kotlin/JUnit).

Documentation

Troubleshooting / Production notes

iOS: video stalls after a few seconds (~300 frames)

If you see a sender-side stall where video capture continues but outbound RTP stops, double-check H264 profile-level-id negotiation. RTCSession.modifySDP(...) intentionally caps Constrained Baseline from level 5.2 (42e034) down to level 4.0 (42e028). Do not change this to level 3.1 (42e01f) for 1080p sources, as it can cause encoder/sender stalls.

License

MIT. See LICENSE.

About

WebRTC SDK for Apple and Android with E2EE Management.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors