https://github.com/saghul/aiouv
A PEP-3156 compatible event loop
https://github.com/saghul/aiouv
Last synced: about 1 year ago
JSON representation
A PEP-3156 compatible event loop
- Host: GitHub
- URL: https://github.com/saghul/aiouv
- Owner: saghul
- Created: 2013-01-28T22:12:49.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2015-10-05T17:47:32.000Z (almost 11 years ago)
- Last Synced: 2025-04-02T19:04:41.470Z (over 1 year ago)
- Language: Python
- Homepage:
- Size: 488 KB
- Stars: 69
- Watchers: 7
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.rst
Awesome Lists containing this project
README
=======================================
aiouv: a PEP-3156 compatible event loop
=======================================
Overview
========
`PEP-3156 `_ is a proposal for asynchronous I/O in Python,
starting with Python 3.3. The reference implementation is codenamed Tulip and can be found
`here `_. It's part of the standard library in 3.4 and also
available in PyPI under the name **asyncio**.
aiouv is an event loop implementation for asyncio based on `pyuv `_.
Installation
============
aiouv depends on pyuv >= 1.0::
pip3 install -U pyuv
On Python 3.3, aiouv also requires asyncio >= 0.4.1::
pip3 install -U asyncio
Extra API functions
===================
aiouv provides a few functions to create TCP, and UDP connections as well as cross
platform named pipes support.
listen_tcp(loop, protocol_factory, addr)
----------------------------------------
Creates a TCP server listening in the specified address (IP / port tuple). On new
connections a new `TCPTransport` will be created and a protocol will be created using
the supplied factory.
Returns the listening handle.
connect_tcp(loop, protocol_factory, addr, bindaddr=None)
--------------------------------------------------------
Create a TCP connection to the specified address. If bindaddr is specified, the local
address is bound to it.
Returns a tuple with the created transport and protocol.
listen_pipe(loop, protocol_factory, name)
-----------------------------------------
Creates a Pipe server listening in the specified pipe name. On new
connections a new `PipeTransport` will be created and a protocol will be created using
the supplied factory.
Returns the listening handle.
connect_pipe(loop, protocol_factory, name)
------------------------------------------
Create a Pipe connection to the specified pipe name.
Returns a tuple with the created transport and protocol.
create_udp_endpoint(loop, protocol_factory, local_addr=None, remote_addr=None)
------------------------------------------------------------------------------
Created a UDP endpoint. If local_addr is specified, the local interface will be bound
to it. If remote_addr is specified, the remote target is set and it doesn't need
to be specified when calling sendto().
Returns a tuple with the created transport and protocol.
Running the test suite
======================
From the toplevel directory, run:
::
hg clone https://code.google.com/p/tulip/ asyncio
export PYTHONPATH=asyncio/
python runtests.py -v aiouv_events_test