django-eventstream
Server-Sent Events for Django
What it is and what it does
Django EventStream is a Django app that streams data to connected clients using the Server-Sent Events protocol (SSE). Instead of clients polling for updates, they open a persistent HTTP connection and receive events as they occur. The package handles the streaming protocol, connection management, and event delivery, making it straightforward to add real-time capabilities to Django views.
It supports per-user channel permissions, optional event persistence to the database for reliable delivery after disconnections, and integration with Django REST Framework. For scaling across multiple instances, it can use Redis or a GRIP proxy to coordinate event delivery. The package depends on Django, PyJWT, gripcontrol, django_grip, and six.
Use it for:
- Build a live notification feed where clients connect once and receive updates without polling.
- Stream real-time data to multiple connected browsers as events occur on the server.
- Implement a dashboard that updates automatically when backend data changes.
- Send event notifications from Django views to connected clients with reliable delivery.
- Create a live activity log or audit trail visible to multiple users simultaneously.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Adds Server-Sent Events (SSE) streaming to Django applications, allowing views to push data to connected clients over persistent HTTP connections.
Yes, if you need real-time push notifications or live data streaming in Django without WebSockets. The package is actively maintained, has low install friction, uses a permissive MIT license, and requires only standard dependencies. It's well-suited for applications that need SSE but not the complexity of alternative infrastructure. Requires Python >=3.10.
Install
django-eventstream on PyPI
pip
pip install django-eventstreamuv
uv add django-eventstreampoetry
poetry add django-eventstreamInstalling django-eventstream
Before you install
Low friction installation with a pure-Python wheel. Depends on Django, PyJWT, gripcontrol, django_grip, and six. Repository is active with recent commits and 865 stars; last release 77 days ago.
License in practice
MIT license (permissive) allows commercial and private use with minimal restrictions; attribution required.
Quickstart
pip install django-eventstream
# In urls.py
from django.urls import path, include
import django_eventstream
urlpatterns = [
path("events/", include(django_eventstream.urls), {"channels": ["test"]}),
]
# Send events
from django_eventstream import send_event
send_event("test", "message", {"text": "hello world"})
Requires Python >=3.10. An ASGI server must be configured as ASGI_APPLICATION in settings.py for production deployment.
Verify before relying
- Whether event storage persists for exactly 24 hours or if this is configurable.
- Whether Redis integration requires additional setup beyond the EVENTSTREAM_REDIS setting.
- Performance characteristics under high client connection counts or event throughput.
- Which ASGI server is recommended or required for production deployment.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — Django, PyJWT, gripcontrol, django_grip, six |
| Maintenance | actively maintained — 77 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 84,297/month — #14,010 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: django_eventstream-5.3.4-py3-none-any.whl
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
httpx-sseConsume Server-Sent Event (SSE) messages from…
permissive · top 1,000 on PyPI
channelsChannels augments Django with WebSocket,…
permissive · top 5,000 on PyPI
django-gripIntegrates Django with GRIP-compatible proxies…
permissive · top 15,000 on PyPI
requests-sseProvides a Python client for consuming…
permissive · top 15,000 on PyPI
sseclient-pyParses Server-Sent Events (SSE) from HTTP…
permissive · top 5,000 on PyPI
sse-starletteProvides Server-Sent Events streaming for…
permissive · top 1,000 on PyPI
aiohttp-sse-clientProvides an async Python client for consuming…
permissive · top 15,000 on PyPI
aiohttp-sseProvides server-sent events (EventSource)…
permissive · top 15,000 on PyPI
smithy-aws-event-streamProvides low-level Python components for…
permissive · top 15,000 on PyPI
pusherPusher is a Python client library for the…
permissive · top 5,000 on PyPI