# encode/broadcaster

Broadcast channels for async web apps. 📢

Repository: https://github.com/encode/broadcaster
Canonical: https://ross.abutalabs.com/products/broadcaster
Language: Python
License: BSD-3-Clause
License Family: permissive
Archived: true
Last push: 2025-04-09T17:09:16+00:00

## Health v2 (maintenance only)
Score: 10/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 15, release rhythm 35, longevity 100
- inputs: {"age_days": 2388, "days_push": 511, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases, archived
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1268, forks 127 (observed 2026-08-28T04:04:11.541232+00:00)

## What it is
A Python library providing a simple async broadcast/publish-subscribe API over multiple backends including Redis PUB/SUB, Redis Streams, Kafka, Postgres LISTEN/NOTIFY, and an in-memory backend. It is commonly used to add realtime streaming to async web apps, such as WebSocket chat applications.

## Use cases
- add realtime pub/sub messaging to an async python web app
- broadcast websocket chat messages across multiple server instances
- subscribe and publish to redis pub/sub from asyncio
- use postgres listen/notify for event broadcasting
- stream events to connected clients via websockets
- swap messaging backends behind a single broadcast API

## When to choose
- you need a simple unified pub/sub abstraction over Redis, Kafka, or Postgres in an async Python app
- you are building realtime features with Starlette/FastAPI websockets
- you want an in-memory backend for local development and testing

## When to avoid
- you need full-featured message queue semantics like acknowledgments, retries, or dead-letter queues
- you are not using an async Python stack
- you need guaranteed message delivery or persistence beyond what Redis Streams offers

## Facets
- artifact type: library
- maturity: active
- function: message-queue, websocket, middleware
- domain: web-development, backend
- platform: python, cross-platform
- tags: pubsub, asyncio, redis, kafka, postgres-listen-notify, realtime, starlette, real-time, messaging

## Member repositories
- encode/broadcaster (main) score 10

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:11.541232+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T05:03:37.535124+00:00, confidence not recorded.
  - readme: https://github.com/encode/broadcaster (fetched 2026-08-28T04:04:11.541232+00:00, sha 60c25f59225f)
  - registry_pypi: https://pypi.org/pypi/broadcaster/json (fetched 2026-08-29T12:15:34.912766+00:00, sha 3ceb777cbd2d)
- Data as of 2026-08-30T08:39:29.467469+00:00.
