aioeventlet
===========
.. image:: poplar_hawk-moth.jpg
:alt: Poplar Hawk-moth (Laothoe populi), photo taken in France
:align: right
:target: https://www.flickr.com/photos/haypo/7181768969/in/set-72157629731066236
aioeventlet implements the asyncio API (`PEP 3156
`_) on top of eventlet. It makes
possible to write asyncio code in a project currently written for eventlet.
aioeventlet allows to use greenthreads in asyncio coroutines, and to use asyncio
coroutines, tasks and futures in greenthreads: see :func:`yield_future` and
:func:`wrap_greenthread` functions.
The main visible difference between aioeventlet and asyncio is the behaviour of
``run_forever()``: ``run_forever()`` blocks with asyncio, whereas it runs in a
greenthread with aioeventlet. It means that aioeventlet event loop can run in an
greenthread while the Python main thread runs other greenthreads in parallel.
* `aioeventlet documentation `_
* `aioeventlet project in the Python Cheeseshop (PyPI)
`_
* `aioeventlet project at Bitbucket `_
* Copyright/license: Open source, Apache 2.0. Enjoy!
Table Of Contents
=================
.. toctree::
using
status
openstack
changelog
Event loops
===========
Projects used by aioeventlet:
* `asyncio documentation `_
* `trollius documentation `_
* `tulip project `_
* `eventlet documentation `_
* `eventlet project `_
* `greenlet documentation `_
See also:
* `aiogevent `_: asyncio API
implemented on top of gevent
* `geventreactor `_: gevent-powered
Twisted reactor
* `greenio `_: Greenlets support
for asyncio (PEP 3156)
* `tulipcore `_: run gevent code on
top of asyncio