:mod:`asyncio` --- Asynchronous I/O =================================== .. module:: asyncio :synopsis: Asynchronous I/O. ------------------------------- .. sidebar:: Hello World! :: import asyncio async def main(): print('Hello ...') await asyncio.sleep(1) print('... World!') # Python 3.7+ asyncio.run(main()) asyncio is a library to write **concurrent** code using the **async/await** syntax. asyncio is used as a foundation for multiple Python asynchronous frameworks that provide high-performance network and web-servers, database connection libraries, distributed task queues, etc. asyncio is often a perfect fit for IO-bound and high-level **structured** network code. asyncio provides a set of **high-level** APIs to: * :ref:`run Python coroutines ` concurrently and have full control over their execution; * perform :ref:`network IO and IPC `; * control :ref:`subprocesses `; * distribute tasks via :ref:`queues `; * :ref:`synchronize ` concurrent code; Additionally, there are **low-level** APIs for *library and framework developers* to: * create and manage :ref:`event loops `, which provide asynchronous APIs for :meth:`networking `, running :meth:`subprocesses `, handling :meth:`OS signals `, etc; * implement efficient protocols using :ref:`transports `; * :ref:`bridge ` callback-based libraries and code with async/await syntax. .. We use the "rubric" directive here to avoid creating the "Reference" subsection in the TOC. .. rubric:: Reference .. toctree:: :caption: High-level APIs :maxdepth: 1 asyncio-task.rst asyncio-stream.rst asyncio-sync.rst asyncio-subprocess.rst asyncio-queue.rst asyncio-exceptions.rst .. toctree:: :caption: Low-level APIs :maxdepth: 1 asyncio-eventloop.rst asyncio-future.rst asyncio-protocol.rst asyncio-policy.rst asyncio-platforms.rst .. toctree:: :caption: Guides and Tutorials :maxdepth: 1 asyncio-api-index.rst asyncio-llapi-index.rst asyncio-dev.rst .. note:: The source code for asyncio can be found in :source:`Lib/asyncio/`.