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
asyncioframework 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.
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, 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.