What is gevent?

Introduction

gevent is a coroutine-based Python networking library that uses greenlet to provide a high-level synchronous API on top of the libevent event loop.

Features include:

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 with help from the contributors and is licensed under the MIT license.

Continue reading »

If you like gevent, donate to support the development.

For gevent-related consulting, contact the author.

Follow Me

twitter.com/gevent

RT @jgelens: Working on a new gevent-websocket release completely restructured and great new features. Including subprotocol and RFC645 ... (Apr 10th)

@hpk42 I actually haven't noticed that. does that mean that @gvanrossum is now ok with adding greenlet or stackless to CPython? (Apr 7th)

PyPy 2.0 beta 2 released. stackless and greenlet features no longer disable JIT. t.co/Y6ycIYAkgf (Apr 7th)

@nathan_hoad sorry about that; can you email me dead links? (Apr 5th)

RT @JJMalina: ok gevent just blew my mind guys (Apr 4th)

@JamesAddison t.co/4fBSBuFqXD (Apr 2nd)

RT @lukesneeringer: My #pycon talk is up: Make More Responsive Web Applications w/ SocketIO and gevent - t.co/JLuvOuLrXI (Mar 23rd)

Older tweets »

 

gevent presentations on PyCon 2011

Using Coroutines to Create Efficient, High-Concurrency Web Applications
In this talk Matt Spitz evaluates several ways to deploy WSGI applications. At Meebo, they settled on gunicorn + gevent, preferring it to mod_wsdi and Twisted.

An outsider’s look at co-routines.
This is an overview by Peter Portante that compares greenlet-based approaches like gevent with yield-based coroutines and threads.

gevent 0.13.6 released

This is a maintenance release, with a few issues fixed by the users.

Read more »

Libev and Libevent

The next version of gevent (1.0) will use libev for the event loop rather than libevent or libevent2.

Read more »