Asyncio in Eventlet
*******************


Asyncio Compatibility
=====================

Compatibility between Asyncio and Eventlet has been recently
introduced.

You may be interested by the state of the art of this compatibility
and by the potential limitations, so please take a look at Asyncio
compatibility in eventlet.


Asyncio Hub & Functions
=======================

Discover the "Asyncio Hub"

You may also want to take a look to the "Asyncio compatibility
functions".


Migrating from Eventlet to Asyncio
==================================


Why Migrating?
--------------

Eventlet is a broken and outdated technology.

Eventlet was created almost 20 years ago (See the History of
Eventlet), at a time where Python did not provided non-blocking
features.

Time passed and Python now provide AsyncIO.

In parallel of the evolution of Python, the maintenance of Eventlet
was discontinued during several versions of Python, increasing the gap
between the monkey patching of Eventlet and the recent implementation
of Python.

This gap is now not recoverable. For this reason, we decided to
officially abandon the maintenance of Eventlet in an incremental way.

In a last effort, we want to lead Eventlet to a well deserved rest.
Our goal is to provide you a guide to migrate off of Eventlet and then
to properly retire Eventlet.

For more details about the reasons who motivated this effort we invite
the readers to show the discussions related to this scheduled abandon:

https://review.opendev.org/c/openstack/governance/+/902585


Getting Started
---------------

Want to use Asyncio and Eventlet together or you simply want to
migrate off of Eventlet?

Follow the official migration guide.

We encourage readers to first look at the Glossary to learn about the
various terms that may be encountered during the migration.


Alternatives & Tips
-------------------

You want to refactor your code to replace Eventlet usages? See the
proposed alternatives and tips:

* Awaitlet as an Alternative

* Manage Your Deprecations
