4 ms·
1. Python 2 is EOL in 2020, don't use it for new projects. 2. async/await it just an API layer on top of a framework. Thus there is no such thing as raw async/
by itamarst 9y ago
1. Python 2 is EOL in 2020, don't use it for new projects.
2. async/await it just an API layer on top of a framework. Thus there is no such thing as raw async/await, it has to be used with a framework of some sort (e.g. Python's built-in asyncio).
3. gevent patches the socket library. Terrible idea. Don't use it.
4. What protocols do you need? Twisted probably has the most implemented, but asyncio and tornado have a bunch too, and not always the same ones.
- defen 9y agoThanks. Protocols - HTTP + some custom stuff on top of TCP.
- itamarst 9y agoI'd personally use Twisted, but I'm biased insofar as I helped develop it. It has both equivalent of Javascript promises (called Deferreds) and ability to interact with them using async/await if you like that idiom more (http://twistedmatrix.com/documents/current/core/howto/defer-intro.html#coroutines-with-async-await http://twistedmatrix.com/documents/current/core/howto/defer-...). But that's just me. Given limited protocol needs, I suggest skimming docs for asyncio, Twisted, and Tornado and seeing which seems to make the most sense to you. For Twisted HTTP client and server to look at are Treq (https://treq.readthedocs.io/en/release-17.8.0/ https://treq.readthedocs.io/en/release-17.8.0/) and Klein (https://klein.readthedocs.io/en/latest/ https://klein.readthedocs.io/en/latest/).