Django Channels

Channels is a project that takes Django and extends its abilities beyond HTTP - to handle WebSockets, chat protocols, IoT protocols, and more. It’s built on a Python specification called ASGI.

Channels builds upon the native ASGI support available in Django since v3.0, and provides an implementation itself for Django v2.2. Django still handles traditional HTTP, whilst Channels give you the choice to handle other connections in either a synchronous or asynchronous style.

To get started understanding Channels, read our Introduction, which will walk through how things work. If you’re upgrading from Channels 2, take a look at 3.0.0 Release Notes to get an overview of the changes.

Warning

This is documentation for the 3.x series of Channels. If you are looking for documentation for older versions, you can select 2.x or 1.x from the versions selector in the bottom-left corner.

Projects

Channels is comprised of several packages:

  • Channels, the Django integration layer
  • Daphne, the HTTP and Websocket termination server
  • asgiref, the base ASGI library
  • channels_redis, the Redis channel layer backend (optional)

This documentation covers the system as a whole; individual release notes and instructions can be found in the individual repositories.