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 libev 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.

Follow Me

twitter.com/gevent

RT @lauramcastro: Sometimes it feels a bit like this when you see Erlang features being copied into other languages ;-). http://t.co/RzrrqJ… (Apr 4th)

RT @Surfly: Our #API is live! Integrate #cobrowsing into your own products any way you like. http://t.co/vyoGXMqXxx #websharing http://t.co… (Apr 4th)

RT @benoitc: "Introducing Pyston: an upcoming, JIT-based Python implementation" https://t.co/uGMD9Za9Ew (Apr 4th)

python3: adding back features from python2 for 5 years now, still ongoing https://t.co/YIWt6aAjt8 (Mar 27th)

RT @fantix: @gevent it passed (again eventually) under Python 3.3, but took a looong time =) http://t.co/jNYbwXFOgR (Feb 24th)

RT @marcinkuzminski: Facebook acquires whatsapp, who cares ! There’s new http://t.co/ukMifl3n8x site !! (Feb 20th)

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 »