Welcome to uvio!¶
This module provides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources, running network clients and servers, named pipes, threadding, subprocesses and more. uvio is based off of libuv
This is a complete replacement for python’s asyncio module.
Motivation¶
- Because I can
- Provide async filesystem objects
- Better subprocess support
Why not AsyncIO?¶
- We don’t need to care about the event loop. In asyncio, the event loop is very prominent. A user does not need to care about the type of event loop they are using
- Don’t need to pass loop to every function. In many of the examples <https://docs.python.org/3/library/asyncio-task.html#example-coroutine-displaying-the-current-date> in asyncio this is the case.
- handles keep loop running don’t need to run_forever or run
Features¶
- Full-featured event loop backed by epoll, kqueue, IOCP, event ports.
- Asynchronous TCP and UDP sockets
- Asynchronous DNS resolution
- Asynchronous file and file system operations
- IPC with socket sharing, using Unix domain sockets or named pipes (Windows)
- Child processes
- Thread pool
- TODO: File system events
- TODO: ANSI escape code controlled TTY
- TODO: Signal handling
- TODO: High resolution clock
- TODO: Threading and synchronization primitives
Contents: