2.0.0 Release Notes

Channels 2.0 is a major rewrite of Channels, introducing a large amount of changes to the fundamental design and architecture of Channels. Notably:

  • Data is no longer transported over a channel layer between protocol server and application; instead, applications run inside their protocol servers (like with WSGI).

  • To achieve this, the entire core of channels is now built around Python’s asyncio framework and runs async-native down until it hits either a Django view or a synchronous consumer.

  • Python 2.7 and 3.4 are no longer supported.

More detailed information on the changes and tips on how to port your applications can be found in our /one-to-two documentation in the 2.x docs version.

Backwards Incompatible Changes

Channels 2 is regrettably not backwards-compatible at all with Channels 1 applications due to the large amount of re-architecting done to the code and the switch from synchronous to asynchronous runtimes.

A migration guide is available in the 2.x docs version, and a lot of the basic concepts are the same, but the basic class structure and imports have changed.

Our apologies for having to make a breaking change like this, but it was the only way to fix some of the fundamental design issues in Channels 1. Channels 1 will continue to receive security and data-loss fixes for the foreseeable future, but no new features will be added.