channels-redis
Redis-backed ASGI channel layer implementation
Decision gist · record as of 2026-08-14
Yes. channels_redis is actively maintained, has no known vulnerabilities, and is the standard Redis integration for Django Channels. Install it if you're building real-time features in Django and need to distribute channels across multiple servers—it's low-friction and well-tested. Use RedisPubSubChannelLayer only if you understand its Beta status and can tolerate potential breaking changes.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires a running Redis server; Django Channels must already be installed and configured in your project.
- Low friction install with four runtime dependencies (redis, msgpack, asgiref, channels).
- Package is actively maintained with recent commits and no known vulnerabilities.
License · maintenance · safety
BSD (permissive) — BSD permissive license allows commercial and private use with minimal restrictions—suitable for most projects.
last release 2025-07-22 (388 days) · last repo commit 2026-08-12 · 649 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 4,922,010 downloads/mo, #2,198 on PyPI
Alternatives
Verify before relying
pip install channels-redis
# In Django settings.py:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [("localhost", 6379)],
},
},
}- Performance characteristics and throughput limits of each implementation (RedisChannelLayer vs. RedisPubSubChannelLayer) under load.
- Whether the Beta status of RedisPubSubChannelLayer implies active breaking changes or stable-with-caution maturity.
What it is and what it does
channels_redis bridges Django Channels (an ASGI framework for async communication) with Redis, providing a persistent, distributed channel layer for real-time applications. It offers two implementations: RedisChannelLayer, which handles channels and groups directly, and RedisPubSubChannelLayer, which uses Redis Pub/Sub for message dispatch (currently in Beta). Both support single-server and sharded configurations, allowing you to scale WebSocket, HTTP streaming, and other real-time features across multiple application servers.
The package integrates into Django's CHANNEL_LAYERS setting and handles message routing, group membership, and capacity management. It supports SSL/TLS connections, Redis Sentinel for high availability, UNIX domain sockets, optional symmetric encryption, and configurable message expiry and per-channel capacity limits. The package is tested against Python 3.9 through 3.13 and maintains compatibility with current and legacy redis-py versions.
Use it for
- Scale WebSocket connections across multiple Django application servers using a shared Redis channel layer.
- Implement real-time group messaging (e.g., chat rooms, notifications) where consumers need to broadcast to many connected clients.
- Build high-availability ASGI deployments with Redis Sentinel for automatic failover and connection resilience.
- Add optional message encryption for sensitive real-time data transmitted through the channel layer.
- Configure per-channel capacity and message expiry to manage backpressure and memory usage in peaky traffic scenarios.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
channels_redis is actively maintained, has no known vulnerabilities, and is the standard Redis integration for Django Channels. Install it if you're building real-time features in Django and need to distribute channels across multiple servers—it's low-friction and well-tested. Use RedisPubSubChannelLayer only if you understand its Beta status and can tolerate potential breaking changes.
Install
channels-redis on PyPI
Before you install
Low friction install with four runtime dependencies (redis, msgpack, asgiref, channels). Package is actively maintained with recent commits and no known vulnerabilities. Requires Python 3.9 or later.
Requires a running Redis server; Django Channels must already be installed and configured in your project.
License in practice
BSD permissive license allows commercial and private use with minimal restrictions—suitable for most projects.
Quickstart
pip install channels-redis
# In Django settings.py:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer",
"CONFIG": {
"hosts": [("localhost", 6379)],
},
},
}
Verify before relying
- Performance characteristics and throughput limits of each implementation (RedisChannelLayer vs. RedisPubSubChannelLayer) under load.
- Whether the Beta status of RedisPubSubChannelLayer implies active breaking changes or stable-with-caution maturity.
Package facts
| License | BSD permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 4 packagesredismsgpackasgirefchannels |
| Maintenance | Actively maintained 388 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 4,922,010 / month, #2,198 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: channels_redis-4.3.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “django channels redis backend”
- channels-redisProvides Redis-backed channel layers for Django Channels, enabling…
- django-redis-sessionsProvides a Redis-backed session storage backend for Django, replacing…
- django-redisProvides a Redis cache and session backend for Django, supporting…
Give your agent the search over MCP, or paste the wish link into any chat.
More Dynamic Content packages
MarkupSafe provides a text object that escapes special characters so untrusted strings can be safely embedded in HTML and XML without injection attacks.
Jinja2 is a templating engine that renders dynamic content by combining templates with Python-like syntax and data, supporting template inheritance, macros, autoescaping, and sandboxed execution.
Soupsieve is a CSS selector library designed to work with Beautiful Soup 4 to select, match, and filter HTML and XML elements using modern CSS selectors from CSS level 1 through CSS level 4 specifications.
Install it if you use Beautiful Soup for HTML or XML parsing and want modern CSS selector support.
Werkzeug is a WSGI utility library providing request/response objects, URL routing, an interactive debugger, HTTP utilities, and a development server for building web applications.
Flask is a lightweight WSGI web application framework for building web applications in Python, from simple single-page sites to complex multi-route applications.
Mako compiles Python-embedded templates into Python modules for fast rendering, supporting layout inheritance, custom functions, and direct Python expressions within template syntax.
See also channels · broadcaster · daphne · pottery · redis · django-redis-sessions · taskiq-redis · pyramid-session-redis · asgiref · py-redis