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 does this by taking the core of Django and layering a fully asynchronous layer underneath, running Django itself in a synchronous mode but handling connections and sockets asynchronously, and giving you the choice to write in either style.

To get started understanding how Channels works, read our Introduction, which will walk through how things work. If you’re upgrading from Channels 1, take a look at What’s new in Channels 2? to get an overview of the changes; things are substantially different.


This is incomplete documentation for an upcoming release. If you are looking for documentation for the stable release of Channels, please select “stable” in the bottom-left corner of the page.


Channels is comprised of several packages:

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