Arc

What Arc is

A self-hosted realtime messaging server, compatible with existing Channels protocol v7 SDKs.

Arc keeps WebSocket connections open, groups them into channels, tracks who is present, and gives your backend a signed HTTP API for publishing events to them.

It speaks the Channels protocol, version 7. Existing client SDKs for that protocol — JavaScript, iOS, Android, Flutter — and the Python server SDK used from Django work against Arc by changing the host and credentials only. Arc's own SDKs will follow.

What you get

How the pieces fit

  • Clients connect over WebSocket to /app/<key> and subscribe to channels. Private, presence and encrypted channels are authorised by your backend, which signs a token with the app secret.
  • Your backend publishes events over the signed HTTP API, and hears about channel activity through webhooks.
  • Arc holds the connections, fans events out, tracks presence, and reports what it is doing through Prometheus metrics and the dashboard.

Drawing diagram…

An app is the unit of isolation: one set of credentials, its own channels, its own limits. Most installations have one per product.

Where to start

On this page