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.
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.
The default browser path supports small-room mesh media. The same room API moves to the production mediasoup SFU path as topology requirements grow.
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();“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.
| Platform | Status | Integration path | Media today |
|---|---|---|---|
| Vanilla browser | Shipped | @rtc-sdk/client-browser | Mesh default; SFU through the same client |
| React / Next.js | Shipped | @rtc-sdk/react, @rtc-sdk/next | Browser media; SSR-safe client loaders |
| Vue / Nuxt | Shipped | @rtc-sdk/vue, @rtc-sdk/nuxt | Browser media; client-only Nuxt module |
| Svelte / Solid / Angular | Shipped | Framework room adapters | Browser media over the shared session core |
| SvelteKit / Remix | Pattern | Client-only integration examples | Browser media; framework-owned SSR boundary |
| Qwik / Astro / Lit | Foundation | Bindings and controller packages | Browser media; integration guidance still maturing |
| Ionic / Capacitor | Shipped | @rtc-sdk/capacitor | WebView browser stack; no native dual-media claim |
| Node.js | Shipped | @rtc-sdk/client-node, workers, optional WebRTC publish | Production signaling/data path; treat media as a service-participant integration |
| Python / Go / .NET | Shipped | Tested signaling, chat, and worker clients | Production signaling/data; Python media is optional and Go/.NET media is application-owned |
| Rust services | Foundation | Signaling, data, and worker client | Media uses external WebRTC or media-worker components |
| React Native / Flutter | Foundation | Cross-platform client packages | Optional or host-linked libwebrtc paths |
| Swift / Kotlin | Foundation | Native signaling, SFU control, media adapters | Real PeerConnection paths with target validation required |
| C++ | Foundation | Generated protocol, room client, Rust media FFI | Partial WHIP/WHEP path |
| MQTT / serial / BLE / USB | Shipped | Thin gateway sidecars | Typed signaling and commands, not WebRTC firmware |
Basic call, chat, framework-minimal apps, native samples, worker bots, robotics, surfaces, admission gates, WHIP/WHEP, and the kitchen-sink observability workbench.
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.
Local signaling, TURN, and SFU profiles, load generators, a multi-cloud cost estimator, and a reference metering consumer/dashboard. Results remain planning inputs.
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.
TomatoRTC can be evaluated against the shortest honest integration path, its evidence, and its current limits.