Developers · participant fabric

Build on one room model. Inspect every transition.

Start with the typed browser SDK, then add framework adapters, service participants, native clients, device bridges, and operational tooling without creating parallel real-time systems.

Typed lifecycleFramework adaptersDeterministic test mediaProtocol codegenSupport bundle export
01

A small API surface over a complete room lifecycle.

The default browser path supports small-room mesh media. The same room API moves to the production mediasoup SFU path as topology requirements grow.

  • Typed room and participant lifecycle
  • Camera, microphone, screen, and file-backed tracks
  • Chat, signals, awareness, data channels, and files
  • Reconnect, media recovery, diagnostics, and support bundles
browser-room.tsTypeScript
import { createRtcClient } from "@rtc-sdk/client-browser";

const client = createRtcClient({
  signalingUrl: "wss://rtc.example.com",
  authToken,
  authTokenType: "auto",
  displayName: "Operator"
});

const room = await client.joinRoom("field-ops");

room.on("participantJoined", participant => {
  console.log(`${participant.displayName} joined`);
});

await room.publishCamera();
await room.publishMicrophone();
Resulting room eventsconnected
+003msclientjoinedroom=field-ops · topology=mesh
+118mscamerapublishedvideo/vp9 · track=cam_01
+151msmicpublishedaudio/opus · track=mic_01
02

Choose an integration path by runtime and maturity.

“Shipped” is a published, documented first-class path. “Pattern” is an integration recipe. “Foundation” means useful APIs or protocol coverage exist, while complete media and room UX still varies.

TomatoRTC SDK platform readiness and current media support
PlatformStatusIntegration pathMedia today
Vanilla browserShipped@rtc-sdk/client-browserMesh default; SFU through the same client
React / Next.jsShipped@rtc-sdk/react, @rtc-sdk/nextBrowser media; SSR-safe client loaders
Vue / NuxtShipped@rtc-sdk/vue, @rtc-sdk/nuxtBrowser media; client-only Nuxt module
Svelte / Solid / AngularShippedFramework room adaptersBrowser media over the shared session core
SvelteKit / RemixPatternClient-only integration examplesBrowser media; framework-owned SSR boundary
Qwik / Astro / LitFoundationBindings and controller packagesBrowser media; integration guidance still maturing
Ionic / CapacitorShipped@rtc-sdk/capacitorWebView browser stack; no native dual-media claim
Node.jsShipped@rtc-sdk/client-node, workers, optional WebRTC publishProduction signaling/data path; treat media as a service-participant integration
Python / Go / .NETShippedTested signaling, chat, and worker clientsProduction signaling/data; Python media is optional and Go/.NET media is application-owned
Rust servicesFoundationSignaling, data, and worker clientMedia uses external WebRTC or media-worker components
React Native / FlutterFoundationCross-platform client packagesOptional or host-linked libwebrtc paths
Swift / KotlinFoundationNative signaling, SFU control, media adaptersReal PeerConnection paths with target validation required
C++FoundationGenerated protocol, room client, Rust media FFIPartial WHIP/WHEP path
MQTT / serial / BLE / USBShippedThin gateway sidecarsTyped signaling and commands, not WebRTC firmware
03

Evidence for technical diligence and operations.

Examples

From minimal rooms to full inspection

Basic call, chat, framework-minimal apps, native samples, worker bots, robotics, surfaces, admission gates, WHIP/WHEP, and the kitchen-sink observability workbench.

Testing

Deterministic RTC helpers

Fake media, mock signaling, two-browser flows, TURN/SFU harnesses, platform SDK checks, and RTC Test Lab matrices with JSON, JUnit, trace, screenshot, and service-log artifacts.

Capacity

Measure the target workload

Local signaling, TURN, and SFU profiles, load generators, a multi-cloud cost estimator, and a reference metering consumer/dashboard. Results remain planning inputs.

Support

Export and inspect actionable context

Redacted support bundles combine room, peer, ICE, timeline, topology, quality, and SDK details. A local evaluator investigates exports, while the connectivity check gathers consented preflight evidence.

Validate the target runtime and topology.

TomatoRTC can be evaluated against the shortest honest integration path, its evidence, and its current limits.