
H2O
A Rust SFU with RTMP and WHIP ingest, recordings, HLS, and an AI media bridge — built in house and running in production: every live stream, recording, and simulcast on water.xyz goes through H2O.
import { H2ORoom } from '@h2o/web';
// token minted by your server via the H2O control API
const room = new H2ORoom();
room.on('trackSubscribed', (track, stream, participant) => {
videoEl.srcObject = stream;
});
await room.connect('wss://h2o.example.com/ws', token);
await room.publishCamera();Multi-party rooms with WebSocket signaling, JWT room tokens, track subscribe on join, mute, metadata, and reconnect.
A real RTMP server on :1935 with stream-key validation — point OBS or a hardware encoder at it and the feed publishes into the room.
Standards-based WebRTC ingest: SDP offer in, answer out, trickle ICE via PATCH.
Webhook-driven lifecycle producing an MKV master plus a browser-ready MP4, validated before it is ever served.
HLS playback for passive viewers, and RTMP egress to simulcast a room to external platforms.
Pull room audio as Ogg/Opus and sampled video frames out; publish generated audio and clips back in as bot tracks. This is what Water's AI co-host speaks through.
HMAC-SHA256-signed events for room, participant, track, recording, and egress lifecycle.
Tenants, API key pairs, quotas, and usage counters on the control API.
Web, React, and React Native SDKs exist and power Water itself. They are in early access — not yet published to a public registry.
@h2o/web
H2ORoom, camera/screen publishing, events, REST client.
@h2o/react
Room provider, VideoTrack/AudioTrack, useTracks and friends.
@h2o/react-native
The same room API on an in-repo native WebRTC bridge.
H2O is proven in production as Water's own stack. The developer platform around it — public SDK releases, docs, self-serve API keys, and metered billing — is being built in the open. If you want to build on it early, we'll work with you directly.
Request early access