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 :doc:`/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 :doc:`migration guide </one-to-two>` 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.
