/gevent

Coroutine-based concurrency library for Python

Primary LanguagePythonOtherNOASSERTION

gevent

gevent is a coroutine-based Python networking library.

Features include:

  • Fast event loop based on libev.
  • Lightweight execution units based on greenlet.
  • Familiar API that re-uses concepts from the Python standard library.
  • Cooperative sockets with SSL support.
  • DNS queries performed through c-ares or a threadpool.
  • Ability to use standard library and 3rd party modules written for standard blocking sockets

gevent is inspired by eventlet but features more consistent API, simpler implementation and better performance. Read why others use gevent and check out the list of the open source projects based on gevent.

gevent is written and maintained by Denis Bilenko and is licensed under MIT license.

get gevent

Install Python 2.6, 2.7, 3.3 or 3.4 along with the greenlet extension. Or install PyPy 2.6 or above (but not PyPy3).

Download the latest release from Python Package Index or clone the repository.

Read the documentation online at http://www.gevent.org

Post feedback and issues on the bug tracker, mailing list, blog and twitter (@gevent).

installing from github

To install the latest development version:

pip install cython git+git://github.com/gevent/gevent.git#egg=gevent

running tests

There are a few different ways to run the tests. To simply run the tests on one version of Python during development, try this:

python setup.py build

cd greentest

PYTHONPATH=.. python testrunner.py --config ../known_failures.py

Before submitting a pull request, it's a good idea to run the tests across all supported versions of Python, and to check the code quality using pep8 and pyflakes. This is what is done on Travis CI. Locally it can be done using tox:

pip install tox

tox