Python interface for libuv
C Python Other
Pull request Compare This branch is 94 commits behind v1.x.
Failed to load latest commit information.
docs dns: move getaddrinfo and getnameinfo to a 'dns' submodule Dec 1, 2014
src dns: move getaddrinfo and getnameinfo to a 'dns' submodule Dec 1, 2014
tests dns: move getaddrinfo and getnameinfo to a 'dns' submodule Dec 1, 2014
.gitignore Added *.pyd files to gitignore Mar 8, 2013
.travis.yml build: add v1.x branch to Travis Oct 21, 2014
ChangeLog core: raised version and updated changelog Dec 2, 2014
LICENSE Added setup.cfg to MANIFEST Aug 27, 2013
README.rst doc: fix links on README Dec 1, 2014
TODO Updated TODO Oct 25, 2012
build_inplace Pass along any arguments passed to build_inplace Mar 28, 2012
setup.cfg Always run tests in the correct directory. Aug 22, 2013 core: raised version and updated changelog Dec 2, 2014 Merge branch 'v0.10' into v1.x Dec 1, 2014 tools: split release process into 2 invoke tasks Jul 3, 2014
tox.ini core: drop support for Python 2.6 Jul 22, 2014


pyuv: 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.

pyuv's features:

  • Non-blocking TCP sockets
  • Non-blocking named pipes
  • UDP support (including multicast)
  • Timers
  • 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

CI status

Stable branch (v1.x):

Old stable branch (v0.10):

Development (master):


Starting with version 1.0.0, pyuv follows the Semantic Versioning spacification, like libuv does.

All releases are downloadable from the GitHub tags page, and the latest stable release from PyPI.



pyuv can be installed via pip as follows:

pip install pyuv


Get the source:

git clone



Mac OSX:

(XCode needs to be installed)
export ARCHFLAGS="-arch x86_64"

Microsoft Windows (with Visual Studio):

python 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)


Saúl Ibarra Corretgé <>


Unless stated otherwise on-file pyuv uses the MIT license, check LICENSE file.

Python versions

Python 2.7, 3.3 and 3.4 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 :-)