Python interface for libuv
pyuv is a Python module which provides an interface to libuv. libuv is a high performance asynchronous networking and platform abstraction library.
libuv is built on top of epoll/kequeue/event ports/etc on Unix and IOCP on Windows systems providing a consistent API on top of them.
- Non-blocking TCP sockets
- Non-blocking named pipes
- UDP support (including multicast)
- Child process spawning
- Asynchronous DNS resolution (getaddrinfo)
- Asynchronous file system APIs
- High resolution time
- System memory information
- System CPUs information
- Network interfaces information
- Thread pool scheduling
- ANSI escape code controlled TTY
- File system events (inotify style and stat based)
- IPC and TCP socket sharing between processes
- Arbitrary file descriptor polling
- Thread synchronization primitives
Starting with version 1.0.0, pyuv follows the Semantic Versioning specification, like libuv does.
pyuv can be installed via pip as follows:
pip install pyuv
Get the source:
git clone https://github.com/saghul/pyuv
(XCode needs to be installed) export ARCHFLAGS="-arch x86_64" ./build_inplace
Microsoft Windows (with Visual Studio):
python setup.py build_ext --inplace
Running the test suite
There are several ways of running the test ruite:
Run the test with the current Python interpreter:
From the toplevel directory, run: nosetests -v
Use Tox to run the test suite in several virtualenvs with several interpreters
From the toplevel directory, run: tox this will run the test suite on Python 2.7, 3.3 and 3.4 (you’ll need to have them installed beforehand)
Unless stated otherwise on-file pyuv uses the MIT license, check LICENSE file.
Python 2.7, and Python >= 3.3 versions are supported.
If you’d like to contribute, fork the project, make a patch and send a pull request. Have a look at the surrounding code and please, make yours look alike :-)
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.