Skip to content
This repository has been archived by the owner on Nov 23, 2017. It is now read-only.
Ludovic Gasc edited this page Apr 11, 2015 · 3 revisions

The Tulip project is the asyncio module for Python 3.3. Since Python 3.4, asyncio is now part of the standard library.

Help:

Pages:

  • [Contributing]: To contribute.
  • [ThirdParty]: A list of 3rd party integrations with asyncio.
  • [Benchmarks]: asyncio benchmarks

The asyncio module provides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources, running network clients and servers, and other related primitives. Here is a more detailed list of the package contents:

  • a pluggable event loop with various system-specific implementations;
  • transport and protocol abstractions (similar to those in Twisted);
  • concrete support for TCP, UDP, SSL, subprocess pipes, delayed calls, and others (some may be system-dependent);
  • a Future class that mimics the one in the concurrent.futures module, but adapted for use with the event loop;
  • coroutines and tasks based on yield from (PEP 380), to help write concurrent code in a sequential fashion;
  • cancellation support for Futures and coroutines;
  • synchronization primitives for use between coroutines in a single thread, mimicking those in the threading module;
  • an interface for passing work off to a threadpool, for times when you absolutely, positively have to use a library that makes blocking I/O calls.

Hello World using an asyncio coroutine:

import asyncio

@asyncio.coroutine
def hello_world():
    print("Hello World!")

loop = asyncio.get_event_loop()
loop.run_until_complete(hello_world())
loop.close()

For AsyncIO on Python 2, see the trollius project.

Clone this wiki locally