.. uvio documentation master file, created by sphinx-quickstart on Sun Mar 20 17:54:35 2016. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. 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 Kitchen Sink ------------ .. highlight:: python Example:: import uvio @uvio.sync async def main(): if __name__ == '__main__': main() 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 ` 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: .. toctree:: :maxdepth: 2 src/event_loop src/workers src/coroutines src/process src/fs src/net src/pipes src/api Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`