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 `_. 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 Channels, read our :doc:`introduction`, which will walk through how things work. If you're upgrading from Channels 1, take a look at :doc:`one-to-two` to get an overview of the changes; things are substantially different. If you would like complete code examples to read alongside the documentation or experiment on, the `channels-examples `_ repository contains well-commented example Channels projects. .. warning:: This is documentation for the **2.x series** of Channels. If you are looking for documentation for the legacy Channels 1, you can select ``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. .. _topics: Topics ------ .. toctree:: :maxdepth: 2 introduction installation tutorial/index topics/consumers topics/routing topics/databases topics/channel_layers topics/sessions topics/authentication topics/security topics/testing topics/worker deploying one-to-two Reference --------- .. toctree:: :maxdepth: 2 asgi channel_layer_spec community contributing support releases/index