[Twisted-Python] Wanting to use Twisted, but a dependency uses asyncio

Craig Rodrigues rodrigc at crodrigues.org
Sun Aug 27 13:35:45 MDT 2017


You can use this class to interoperate with the Python asyncio reactor and
Twisted:


https://twistedmatrix.com/documents/current/api/twisted.internet.asyncioreactor.html

So you can do something like:

import asyncio
from twisted.internet import asyncioreactor, reactor
loop = asyncio.get_event_loop()

asyncioreactor.install(eventloop=loop)
reactor.run()


Here is a fancy example which uses Python asyncio, uvloop, and twisted.web
combined:

https://gist.github.com/ldjebran/4febf298232a6fd86871df25d4dc00dd


--
Craig

On Sun, Aug 27, 2017 at 11:36 AM, Justin Myles Holmes <
twotonespirit at gmail.com> wrote:

> Sure, syntactically it seems pretty close to gravy.
>
> But I'm wondering about flow control: if a project like kademlia is using
> the ayncio event loop, is it still practical to use twisted?
>
> On Sun, Aug 27, 2017 at 11:35 AM, Craig Rodrigues <rodrigc at crodrigues.org>
> wrote:
>
>> Twisted 17.5.0 has new code to interoperate between Python's asyncio and
>> "async def":
>>
>> https://twistedmatrix.com/documents/current/core/howto/defer
>> -intro.html#coroutines-with-async-await
>>
>> One example of where this is used is in Klein, a web microframework built
>> on top of Twisted:
>>
>> https://klein.readthedocs.io/en/latest/examples/await.html
>>
>>
>> Also, over 93% of Twisted's tests pass on Python 3:
>>
>> https://www.slideshare.net/CraigRodrigues1/the-onward-journe
>> y-porting-twisted-to-python-3
>>
>> So I think that it is quite possible to look at using Twisted in a
>> project which is using Python asyncio.
>>
>> --
>> Craig
>>
>> On Sun, Aug 27, 2017 at 11:06 AM, Justin Myles Holmes <
>> twotonespirit at gmail.com> wrote:
>>
>>> Hey friends.
>>>
>>> I'm in a position that is probably increasingly common.  I'm working on
>>> a project that has a dependency that uses asyncio (kademlia).
>>>
>>> However, I much prefer to use Twisted.
>>>
>>> What's are some best practices for this at the moment?
>>>
>>>
>
>
> --
> Justin Myles Holmes
> justinholmes.com
> thisisthebus.com
> github.com/jMyles/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20170827/26ec965d/attachment-0002.html>


More information about the Twisted-Python mailing list