Skip to main content

Coroutine-based network library

Project description

gevent is a coroutine-based Python networking library.

Features include:

  • Fast event loop based on libev or libuv.

  • 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 was written by Denis Bilenko.

Since version 1.1, gevent is maintained by NextThought with help from the contributors and is licensed under the MIT license.

See what’s new in the latest major release.

Check out the detailed changelog for this version.

Get gevent

gevent runs on Python >= 2.7, Python >= 3.4, or PyPy >= 5.5 (including PyPy2 and PyPy3). On all platforms, installing setuptools is required (this is done automatically if working in a virtual environment).

You can use pip to install gevent:

pip install gevent

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

Read the documentation online at http://www.gevent.org. Additional installation information can be found here.

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

Development

To install the latest development version:

pip install setuptools cffi 'cython>=0.27' git+git://github.com/gevent/gevent.git#egg=gevent

To hack on gevent (using a virtualenv):

$ git clone https://github.com/gevent/gevent.git
$ cd gevent
$ virtualenv env
$ source env/bin/activate
(env) $ pip install -r dev-requirements.txt

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:

(env) $ pip install -e .
(env) $ cd src/greentest
(env) $ python ./testrunner.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 prospector. This is what is done on Travis CI. Locally it can be done using tox:

pip install tox
tox

The testrunner accepts a --coverage argument to enable code coverage metrics through the coverage.py package. That would go something like this:

cd src/greentest
python testrunner.py --coverage
coverage combine
coverage html -i
<open htmlcov/index.html>

Builds on Travis CI automatically submit updates to coveralls.io to monitor test coverage.

https://coveralls.io/repos/gevent/gevent/badge.svg?branch=master&service=github

Continuous integration

A test suite is run for every push and pull request submitted. Travis CI is used to test on Linux, and AppVeyor runs the builds on Windows.

https://travis-ci.org/gevent/gevent.svg?branch=master https://ci.appveyor.com/api/projects/status/q4kl21ng2yo2ixur?svg=true

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gevent-1.3a2.tar.gz (4.1 MB view hashes)

Uploaded Source

Built Distributions

gevent-1.3a2.win-amd64-py3.6.exe (1.8 MB view hashes)

Uploaded Source

gevent-1.3a2.win-amd64-py3.5.exe (1.8 MB view hashes)

Uploaded Source

gevent-1.3a2.win-amd64-py3.4.exe (1.5 MB view hashes)

Uploaded Source

gevent-1.3a2.win-amd64-py2.7.exe (1.5 MB view hashes)

Uploaded Source

gevent-1.3a2.win32-py3.6.exe (1.6 MB view hashes)

Uploaded Source

gevent-1.3a2.win32-py3.5.exe (1.6 MB view hashes)

Uploaded Source

gevent-1.3a2.win32-py3.4.exe (1.4 MB view hashes)

Uploaded Source

gevent-1.3a2.win32-py2.7.exe (1.4 MB view hashes)

Uploaded Source

gevent-1.3a2-pp2510-pypy_41-macosx_10_13_x86_64.whl (656.5 kB view hashes)

Uploaded PyPy macOS 10.13+ x86-64

gevent-1.3a2-pp259-pypy_41-win32.whl (631.7 kB view hashes)

Uploaded PyPy Windows x86

gevent-1.3a2-cp37-cp37m-macosx_10_9_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

gevent-1.3a2-cp36-cp36m-win_amd64.whl (1.2 MB view hashes)

Uploaded CPython 3.6m Windows x86-64

gevent-1.3a2-cp36-cp36m-win32.whl (1.2 MB view hashes)

Uploaded CPython 3.6m Windows x86

gevent-1.3a2-cp36-cp36m-manylinux1_x86_64.whl (2.7 MB view hashes)

Uploaded CPython 3.6m

gevent-1.3a2-cp36-cp36m-macosx_10_6_intel.whl (1.9 MB view hashes)

Uploaded CPython 3.6m macOS 10.6+ intel

gevent-1.3a2-cp35-cp35m-win_amd64.whl (1.2 MB view hashes)

Uploaded CPython 3.5m Windows x86-64

gevent-1.3a2-cp35-cp35m-win32.whl (1.1 MB view hashes)

Uploaded CPython 3.5m Windows x86

gevent-1.3a2-cp35-cp35m-manylinux1_x86_64.whl (2.6 MB view hashes)

Uploaded CPython 3.5m

gevent-1.3a2-cp35-cp35m-macosx_10_6_intel.whl (1.9 MB view hashes)

Uploaded CPython 3.5m macOS 10.6+ intel

gevent-1.3a2-cp34-cp34m-win_amd64.whl (1.2 MB view hashes)

Uploaded CPython 3.4m Windows x86-64

gevent-1.3a2-cp34-cp34m-win32.whl (1.2 MB view hashes)

Uploaded CPython 3.4m Windows x86

gevent-1.3a2-cp34-cp34m-manylinux1_x86_64.whl (2.6 MB view hashes)

Uploaded CPython 3.4m

gevent-1.3a2-cp34-cp34m-macosx_10_6_intel.whl (1.9 MB view hashes)

Uploaded CPython 3.4m macOS 10.6+ intel

gevent-1.3a2-cp27-cp27mu-manylinux1_x86_64.whl (2.5 MB view hashes)

Uploaded CPython 2.7mu

gevent-1.3a2-cp27-cp27m-win_amd64.whl (1.2 MB view hashes)

Uploaded CPython 2.7m Windows x86-64

gevent-1.3a2-cp27-cp27m-win32.whl (1.2 MB view hashes)

Uploaded CPython 2.7m Windows x86

gevent-1.3a2-cp27-cp27m-manylinux1_x86_64.whl (2.5 MB view hashes)

Uploaded CPython 2.7m

gevent-1.3a2-cp27-cp27m-macosx_10_6_intel.whl (1.9 MB view hashes)

Uploaded CPython 2.7m macOS 10.6+ intel

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page