Skip to content
sstreamzet/docs
SDK reference 2026.09Open console
Developer docs / SDK reference
API and integration guide · Updated 2026-09-23

SDK verification and acceptance

Execution record dated 2026-09-22. Automated checks, actual app/server runs and target-device acceptance have distinct scope.

Test environment

Android SDK 0.2.0-rc.2: Android 16/API 36.1 ARM64 emulator, business sample and standalone support app. Linux SDK preview: Ubuntu 24.04 ARM64 containers, normal user, Xvfb X11 and nested GNOME 46 Wayland. Desktop tests use 2 CPU / 2 GiB limits.

Additional CI passed on Ubuntu 24.04 AMD64: Go race/X11, actual C ABI and C/Go example execution, and SDK ZIP packaging. Android CI also passed Maven debug/R8 builds for both apps and the documentation-only consumer. Physical GPU/OEM qualification is separate.

Android execution coverage

LayerResult and scope
Unit/lifecycle37 passed: configuration, HTTP contracts, state, duplicate start, permission denial, rotation, late results and protected input.
On-device instrumentation4 functional scenarios passed: real MediaProjection/WebRTC video, input, rotation, reconnect, view-only and user/operator/OS stop. Backend/signaling use local fixtures.
Actual TURNDecoded video and input passed on direct, UDP, TCP and TLS paths; relay/relay candidates verified for TURN.
Delivered-app executionBoth debug apps and QA-signed R8 releases installed and run. Production backend/WSS/web viewer verified video, input and operator stop; same-signature updates preserved codes.
Documentation consumerThe complete documented Activity compiled in a separate project against only the Maven SDK, in debug/R8 release. Both samples built with the published dependency.

Linux execution coverage

LayerResult and scope
Public Go/C SDKStart/Status/Identity/Stop/Wait/Done, exclusive ownership, persistence, redaction, root rejection and invalid JSON/path/URL checks. Separate Go module compiled against the public API.
C/Go examplesActual enrollment/WSS/web-terminal Bash round trips, Enter shutdown and identity-preserving restart. Regression passed after fixing C example shutdown on SIGURG.
Terminal/Fleet/maintenanceRace checks covered PTY, resize, shutdown, backpressure, Fleet command bounds/timeouts and maintenance exclusion. No Fleet command was sent to a customer device.
X11Real VP8 video/remote input and 800×600 JPEG capture passed.
WaylandReal GNOME portal consent, video and uppercase/symbol/Korean input passed. Denial blocked control while preserving terminal. An initial paste/Enter ordering failure is recorded below.
TURNActual relay/relay terminal round trips passed over UDP, TCP and TLS.
Separate xSpan regressionClean ARMv5 cross-build, five native codec/entropy/process/identity/product checks and Go gateway/relay race checks passed. No physical reader firmware/RFID qualification in this run.

Observed limits and performance

For a 12-second measurement at a 1600px/30fps target, decoded rates were about 30.1fps direct, 16.8fps UDP, 8.9fps TCP and 4.6fps TLS. These describe this emulator/network, not an SLA or product guarantee. Proxy, latency and congestion conditions matter.

Remaining product-specific acceptance

  1. Android: qualify shipping models/OS, physical 16 KB page devices, OEM battery/accessibility policies, lock/reboot and actual IME/WebView/scanner hardware.
  2. Linux: separately qualify target glibc/distribution and physical ARM64/AMD64 GPU, multimonitor, keyboard layouts, login/logout/reboot and long-running operation.
  3. Customer environment: verify account/tenant policy, proxy/store networks/enterprise firewalls, signed updates/recovery, business impact and logging policy.