broadcaster Library

0.3.1 · active · verified Fri Apr 17

Broadcaster provides a simple, asynchronous publish/subscribe interface for Python 3.8+, allowing for broadcast channels across various backends like Redis, PostgreSQL, and Kafka. The current version is 0.3.1. It's actively maintained by the Encode organization, known for projects like Starlette and Uvicorn, suggesting a steady, incremental release cadence.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates setting up an in-memory (default) or environment-variable-configured Broadcaster. It connects, publishes a message to a channel, and then subscribes and retrieves that message. Remember to set the `BROADCAST_URL` environment variable (e.g., `redis://localhost:6379`) to use a different backend, and ensure the corresponding optional dependency is installed.

import asyncio
import os
from broadcaster import Broadcaster

BROADCAST_URL = os.environ.get("BROADCAST_URL", "memory://")

async def main():
    # Initialize broadcaster with a URL, defaults to in-memory if env var is not set
    broadcaster = Broadcaster(BROADCAST_URL)
    
    # Establish connection to the backend
    await broadcaster.connect()
    
    async with broadcaster.subscribe("chat") as subscriber:
        # Publish a message
        await broadcaster.publish("chat", "Hello from broadcaster!")
        print(f"Published: Hello from broadcaster!")
        
        # Receive a message
        message = await subscriber.get()
        print(f"Received: {message}")

    # Disconnect from the backend
    await broadcaster.disconnect()

if __name__ == "__main__":
    asyncio.run(main())

view raw JSON →