-
Notifications
You must be signed in to change notification settings - Fork 74
Open
Description
Introducing sippy_async: a monkey patch to run the event loop over
anyio 3, which means that the loop will support asyncio or trio.
I realised that this repo had moved from Twisted to a hand-crafted libelperiodic loop, but...
if you are using async python, I have an experimental monkey patch to support running the
event loop on asyncio/trio via anyio. Basic tests that pass: Timeout, Udp_server.
# runs the Timeout / Udp_server testsuites under anyio
python -m sippy_async
Implementation notes:
- does not use threads and the UDP server is implemented with anyio classes
ED2.callFromThread()is not implemented as the network servers run on the event loop- not all methods of
Udp_serverandEventDispatcherare implemented; only enough to run simple B2BUA scripts
and some tests - anyio has sync/async-type queues("memory object streams"): this enables callbacks that require async functionality (
UDP data transmission, timeouts) to work without async creep; no function signatures are changed - the curio async framework is not supported as this restriction is imposed by anyio 3
The pro would be that if you want to write your B2BUA scripts with async python you won't need to run two event loops.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels