dispergo

PRIVATE ALPHA

The media path. Under control.

Bring streams in over SRT. Repair only what needs encoding. Deliver HLS, LL-HLS and WHEP WebRTC, retain durable recordings with or without live playback, publish them to object storage, or route media onward. One Go binary composed from explicit input and output modules, with a data path that is bounded, measured, and written down.

Run your first stream

What it does

Bring streams in
Accept SRT publishers, start managed pulls, or pull from another node when a viewer asks. Every path enters the same normalized stream model.
Repair when needed
Measure the stream first. Start a bounded CPU or GPU worker only when keyframes or audio need repair; compliant inputs stay on the passthrough path.
Deliver live
Serve HLS, LL-HLS and WHEP WebRTC from the same node. Keep storage-backed delivery and real-time playback as independent bounded outputs.
Route media onward
Push an active stream to one or more SRT destinations on demand or by standing rule. Each target has its own bounded lifecycle and cannot stall the source.
Record and publish
Keep a recording playable while it grows, finalize it at the same path, and publish committed artifacts safely to S3-compatible storage for archive or CDN delivery.
Operate the system
Use separate media and operational surfaces, stream and job status APIs, Prometheus metrics, structured logs, health probes, and bounded webhooks.

Shape the system

Start with one node. Add cascade input and output when viewers move farther away. Add a registry when stream placement becomes a control-plane concern. Push SRT to another server, partner, or processing destination when the media path needs another level.

The topology grows from the same binary and the same contracts. No mandatory control plane, hosted dependency, or proprietary transport is inserted between levels.

See common compositions

Why dispergo

Transcode only when needed

Optional outputs build only when enabled. A compliant stream stays on the direct path without starting a transcode worker.

Bound every failure

Queues, retries, workers, viewers, uploads, and fan-out subscribers have explicit limits and isolated failure scopes.

Keep the data plane plain

One Go binary, one strict configuration document, and standards-based links between components.

Make claims observable

Status, metrics, structured events, compatibility tests, fault injection, and soak coverage make feature behavior inspectable. Capacity limits are explicit instead of guessed.

Status

dispergo is private alpha software. SRT push, managed pull and cascade input, conditional repair, HLS, LL-HLS, WHEP WebRTC, recording, S3 publishing, webhooks and SRT outputs are implemented. Interfaces may still change.

Read the operator guide

The name

dispergo is Latin, first person singular: dis + spargere, I scatter apart, I distribute. The English word broadcast is the same construction: broad + cast, to scatter seed widely, a farmer's word long before it became an engineer's.

It is also valid Italian: io dispergo, I disperse. That makes the domain dispergo.io a complete sentence, written back to front. And yes, the name ends in go.