Skip to content

reactor-effect

Build on Reactor's real-time video models, H3 today, from Node, Bun and the browser. Keep a channel on air across session caps, read decoded frames without a browser, and run the whole application offline before it spends a cent.

The video above is H3’s own output, decoded in-process and recorded by the hosted showreel check on October 1, 2026: one Playout, five scenes on one session, seams of 89–120 ms with no dark frame. The whole reel, with sound.

Stay on air

Playout keeps H3 playing across capped sessions. It opens the next session before the current one ends and switches at a clip boundary. In paid runs of the 0.8.0 playout on hosted H3 (2026-09-28 and 09-29), clip-to-clip seams measured 46–169 ms with no dark frame, and a planned switch between sessions 420–432 ms.

Frames in Node, no browser

reactor-effect-native binds Reactor’s reactor-webrtc crate (libwebrtc) through Node-API: owned BGRA frames and PCM in Node and Bun, with no browser in between. In paid runs on hosted H3 (2026-09-24 to 09-28, under Bun): 1344×768 at about 24 fps, no frame lost.

Build offline, for free

ReactorTest is Reactor in memory: the coordinator’s HTTP API and an H3 model speaking the real wire protocol, on the Effect clock, with timing measured on paid runs and injectable faults. Under TestClock, an hour of programme with six renewals runs in about 20 seconds.

Know what reached Reactor

Every failed command says whether it was never sent, answered, or unknown. An enqueue whose reply was lost is never sent again, so a lost reply never doubles a clip.

Sessions outlive tokens and processes

Tokens bound to the session refresh before they expire, a dropped connection recovers on the same session, and a crashed owner’s session is adopted by the next process.

Billing safety as an API

Every creating token must state its session’s cap, close confirms termination with an independent read, and Session.mayStillBill says whether a closed session may still bill.

The hosted figures come from 22 paid runs between 2026-09-24 and 2026-10-01, on the 0.3.0-rc.0 to 0.9.0 libraries; on 0.9.0 only the one-session showreel check (2026-10-01) has run. 0.9.0’s other checks, its published client packages, the browser package and the in-process native host under Node have not run on hosted Reactor yet.

reactor-effect is an independent project, not an official Reactor SDK. It is Apache-2.0 licensed and published to npm with provenance.