15.14. AsyncIO 3rd Party

15.14.1. Unsync

  • Library decides which to run, thread, asyncio or sync

$ pip install unsync
>>> 
... from unsync import unsync
...
... @unsync
... def my_function():
...     pass

15.14.2. Twisted

  • Old project

$ pip install twisted

15.14.3. Gevent

  • Actively maintained

  • Greenlets (micro-threads running inside one thread)

$ pip install gevent

15.14.4. Tornado

  • Actively maintained

  • Web framework and asynchronous networking library

  • Open-sourced by Facebook after acquisition of FriendFeed

15.14.5. Curio

  • Coroutine-based library for concurrent Python systems programming

  • Provides standard programming abstractions such as tasks, sockets, files, locks and queues

  • Works on POSIX and Windows

15.14.6. Trio

  • Python library for async concurrency and I/O

  • Focussed on usability and correctness

  • Introduced nursery (task groups)

15.14.7. UVLoop

  • The ultimate loop implementation for UNIXes (run this on production)

$ pip install uvloop
>>> 
... import uvloop
...
... uvloop.install()
...
... loop = asyncio.new_event_loop()
... loop
<uvloop.Loop running=False closed=False debug=False>