Python interface for libuv
Permalink
Failed to load latest commit information.
.travis ci: use new PyPy version on Travis Jun 9, 2017
appveyor build, ci: fix build of Python 3.5 on Windows and AppVeyor May 26, 2016
deps/libuv core: update libuv to version 1.13.1 Jul 8, 2017
docs docs: update IPC docs Jul 5, 2017
examples samples: fixup Poll handle based example Jan 14, 2016
pyuv core: set version to 1.4.0 Jul 8, 2017
src pipe: add abstract namespace support Jul 5, 2017
tests pipe: add abstract namespace support Jul 5, 2017
.gitignore deps: add libuv sources v1.12.0 Jun 10, 2017
.travis.yml ci: stop testing on v0.10, it's EOLd Jul 8, 2017
AUTHORS Add @iyedb to AUTHORS May 13, 2014
ChangeLog core: updated changelog Jul 8, 2017
LICENSE Added LICENSE Nov 16, 2011
MANIFEST.in Added setup.cfg to MANIFEST Aug 27, 2013
README.rst doc: fix typo Nov 4, 2015
TODO Updated TODO Oct 25, 2012
appveyor.yml ci: run only on long-term branches Jun 6, 2017
build-manylinux-wheels.sh build: fix building manylinux wheels Jul 8, 2017
build_inplace Pass along any arguments passed to build_inplace Mar 28, 2012
dev-requirements.txt doc: add livehtml target to docs Makefile Apr 10, 2016
make-manylinux build: add scripts to build manylinux wheels using Docker May 27, 2016
setup.cfg Always run tests in the correct directory. Aug 22, 2013
setup.py misc: update classifiers Jul 8, 2017
setup_libuv.py build: only link with kvm on netbsd Jul 8, 2017
tasks.py misc: sign tags May 26, 2016
tox.ini Revert "ci: workaround setuptools issue" Jun 6, 2017

README.rst

pyuv: Python interface for libuv

https://badge.fury.io/py/pyuv.png

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)

  • Travis CI:
    https://travis-ci.org/saghul/pyuv.svg?branch=v1.x
  • AppVeyor:
    https://ci.appveyor.com/api/projects/status/ne2un9br9t0qs5cd?svg=true

Versioning

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

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

Documentation

http://readthedocs.org/docs/pyuv/

Installing

pyuv can be installed via pip as follows:

pip install pyuv

Building

Get the source:

git clone https://github.com/saghul/pyuv

Linux:

./build_inplace

Mac OSX:

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

Author

Saúl Ibarra Corretgé <saghul@gmail.com>

License

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

Python versions

Python 2.7, and Python >= 3.3 versions are supported.

Contributing

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