--- id: broadcaster version: "0.3.1" license: unclear license_treatment: permissive maintenance: abandoned --- # broadcaster — Simple broadcast channels. License: permissive · Maintenance: abandoned · Downloads: 161.8K/mo ## What it is and what it does Broadcaster is an async pub/sub abstraction layer that lets you write realtime messaging code once and swap backends without changing application logic. It supports Redis (both PUB/SUB and Streams), Apache Kafka, PostgreSQL LISTEN/NOTIFY, and a simple in-memory backend for development and testing. The package is built on anyio for async compatibility and is designed to integrate with async web frameworks like Starlette. The typical use case is adding broadcast channels to async web applications—for example, a WebSocket chat app where messages published to a channel are delivered to all subscribers. You instantiate a Broadcast object with a backend URL, call connect() and disconnect() at app startup and shutdown, then use publish() to send messages and subscribe() as an async context manager to receive them. The abstraction means you can develop locally with the memory backend and deploy with Redis or Kafka by changing a single URL. Use it for: - WebSocket chat or notification systems where messages from one client need to reach multiple connected clients in real time. - Local development and testing using the in-memory backend without requiring external services. - Migrating between pub/sub backends (e.g., from Redis to Kafka) without rewriting application code. - Broadcasting events across multiple async tasks or coroutines within a single application. - Building async web applications with Starlette that need pub/sub messaging. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Broadcaster provides a simple async broadcast API that abstracts over multiple backend services—Redis PUB/SUB, Redis Streams, Apache Kafka, PostgreSQL LISTEN/NOTIFY, and in-memory—to add realtime pub/sub messaging to Python applications. No, not for new projects. The package is abandoned (repo archived, last commit April 2025) and explicitly marked Alpha with an API subject to change. The maintainers recommend pinning strictly to 0.3.0 if you must use it. For realtime messaging, prefer actively maintained alternatives or use backend libraries directly (aioredis, aiokafka, psycopg). ## Install pip install broadcaster uv add broadcaster poetry add broadcaster ## Installing broadcaster Before you install: Low install friction; depends only on anyio and typing-extensions. However, the package is abandoned (last commit 2025-04-09, repo archived) and in Alpha status, so maintenance is no longer active. License in practice: Licensed under BSD (permissive), so commercial and private use are unrestricted. Quickstart: pip install broadcaster from broadcaster import Broadcast import anyio broadcast = Broadcast("memory://") await broadcast.connect() await broadcast.publish(channel="test", message="hello") async with broadcast.subscribe(channel="test") as subscriber: async for event in subscriber: print(event.message) Requires Python 3.8+; backend-specific dependencies (redis, psycopg2, kafka-python) must be installed separately for non-memory backends. Verify before relying: - Whether the abandoned status and Alpha classification pose a risk for production use in your project. - Whether the in-memory backend is suitable for your scale or if a persistent backend is required. - Current compatibility with modern versions of backend services (Redis, Kafka, PostgreSQL) given the lack of recent maintenance. ## Package facts - License: not declared (permissive) - Python support: supports_current - Install friction: low - Maintenance: abandoned - Downloads: 161.8K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags async broadcast messaging, redis pubsub abstraction, realtime event streaming, kafka python wrapper, websocket broadcast backend, postgres listen notify, in-memory pub sub, async-messaging, pubsub-abstraction, abandoned [View on SkillFed](https://skillfed.io/packages/broadcaster) · [View on PyPI](https://pypi.org/project/broadcaster/)