Commit 6c731643 authored by Yury Selivanov's avatar Yury Selivanov Committed by GitHub

bpo-33649: Refresh asyncio docs landing page (GH-9322)

parent 5acccfaf
.. currentmodule:: asyncio .. currentmodule:: asyncio
.. _asyncio-futures:
======= =======
Futures Futures
======= =======
......
.. currentmodule:: asyncio .. currentmodule:: asyncio
.. _asyncio-queues:
====== ======
Queues Queues
......
...@@ -6,43 +6,46 @@ ...@@ -6,43 +6,46 @@
-------------- --------------
.. TODO: rewrite the introduction section asyncio is a library to write **concurrent** code using
**async/await** syntax.
This module provides infrastructure for writing single-threaded concurrent asyncio is used as a foundation for multiple Python asynchronous
code using coroutines, multiplexing I/O access over sockets and other frameworks that provide high-performance network and web-servers,
resources, running network clients and servers, and other related primitives. database connection libraries, distributed task queues, etc.
Here is a more detailed list of the package contents:
* a pluggable :ref:`event loop <asyncio-event-loop>` with various system-specific asyncio is often a perfect fit for IO-bound and high-level
implementations; **structured** network code.
* :ref:`transport <asyncio-transport>` and :ref:`protocol <asyncio-protocol>` abstractions asyncio provides a set of **high-level** APIs to:
(similar to those in `Twisted <https://twistedmatrix.com/trac/>`_);
* concrete support for TCP, UDP, SSL, subprocess pipes, delayed calls, and * :ref:`run Python coroutines <coroutine>` concurrently and
others (some may be system-dependent); have full control over their execution;
* a :class:`Future` class that mimics the one in the :mod:`concurrent.futures` * perform :ref:`network IO and IPC <asyncio-streams>`;
module, but adapted for use with the event loop;
* coroutines and tasks based on ``yield from`` (:PEP:`380`), to help write * control :ref:`subprocesses <asyncio-subprocess>`;
concurrent code in a sequential fashion;
* cancellation support for :class:`Future`\s and coroutines; * distribute tasks via :ref:`queues <asyncio-queues>`;
* :ref:`synchronization primitives <asyncio-sync>` for use between coroutines in * :ref:`synchronize <asyncio-sync>` concurrent code;
a single thread, mimicking those in the :mod:`threading` module;
* an interface for passing work off to a threadpool, for times when as well as **low-level** APIs for *library and framework developers* to:
you absolutely, positively have to use a library that makes blocking
I/O calls.
Asynchronous programming is more complex than classical "sequential" * create and manage :ref:`event loops <asyncio-event-loop>`, which
programming: see the :ref:`Develop with asyncio <asyncio-dev>` page which lists provide asynchronous APIs for networking, subprocesses, OS signals,
common traps and explains how to avoid them. :ref:`Enable the debug mode etc;
<asyncio-debug-mode>` during development to detect common issues.
High-level APIs: * implement efficient protocols using
:ref:`transports <asyncio-transports-protocols>`;
* :ref:`bridge <asyncio-futures>` callback-based libraries and code
with async/await syntax.
Contents
--------
.. rubric:: High-level APIs
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
...@@ -54,7 +57,7 @@ High-level APIs: ...@@ -54,7 +57,7 @@ High-level APIs:
asyncio-queue.rst asyncio-queue.rst
asyncio-exceptions.rst asyncio-exceptions.rst
Low-level APIs: .. rubric:: Low-level APIs
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
...@@ -65,7 +68,7 @@ Low-level APIs: ...@@ -65,7 +68,7 @@ Low-level APIs:
asyncio-policy.rst asyncio-policy.rst
asyncio-platforms.rst asyncio-platforms.rst
Guides and Tutorials: .. rubric:: Guides and Tutorials
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment