gevent_ is a coroutine-based Python networking library.
...
...
@@ -12,25 +13,29 @@ Features include:
* 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 `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 or newer and greenlet_ extension.
Install Python 2.6, 2.7, 3.3 or 3.4 and greenlet_ extension.
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)`_.
Post feedback and issues on the `bug tracker`_, `mailing list`_, blog_
and `twitter (@gevent)`_.
installing from github
----------------------
======================
To install the latest development version:
...
...
@@ -38,7 +43,7 @@ To install the latest development version:
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:
- Add support for Python 3.3 and 3.4. Many people have contributed to
this effort, including but not limited to Fantix King, hashstat,
...
...
@@ -43,12 +44,12 @@ Unreleased
sem.acquire(): ...``. PR #544 by Mouad Benchchaoui.
- Patch ``subprocess`` by default in ``gevent.monkey.patch_all``. See
#446.
- ``gevent.pool.Group.imap`` and ``imap_unordered`` not accept
- ``gevent.pool.Group.imap`` and ``imap_unordered`` now accept
multiple iterables like ``itertools.imap``. Issue #565 reported by
Thomas Steinacher.
Release 1.0.2
-------------
=============
- Fix LifoQueue.peek() to return correct element. PR #456. Patch by Christine Spang.
- Upgrade to libev 4.19
...
...
@@ -58,13 +59,13 @@ Release 1.0.2
- Add compatibility with Python 2.7.9's SSL changes. Issue #477.
Release 1.0.1
-------------
=============
- Fix #423: Pool's imap/imap_unordered could hang forever. Based on patch and test by Jianfei Wang.
Release 1.0 (Nov 26, 2013)
--------------------------
==========================
- pywsgi: Pass copy of error list instead of direct reference. Thanks to Jonathan Kamens, Matt Iversen.
- Ignore the autogenerated doc/gevent.*.rst files. Patch by Matthias Urlichs.
...
...
@@ -73,7 +74,7 @@ Release 1.0 (Nov 26, 2013)
Release 1.0rc3 (Sep 14, 2013)
-----------------------------
=============================
- Fix #251: crash in gevent.core when accessing destroyed loop.
- Fix #235: Replace self._threadpool.close() with self._threadpool.kill() in hub.py. Patch by Jan-Philip Gehrcke.
...
...
@@ -96,7 +97,7 @@ Release 1.0rc3 (Sep 14, 2013)
Release 1.0rc2 (Dec 10, 2012)
-----------------------------
=============================
- Fixed #210: callbacks were not run for non-default loop (bug introduced in 1.0rc1).
- patch_all() no longer patches subprocess unless `subprocess=True` is passed.
...
...
@@ -112,7 +113,7 @@ Release 1.0rc2 (Dec 10, 2012)
Release 1.0rc1 (Oct 30, 2012)
-----------------------------
=============================
- Fixed hub.switch() not to touch stacktrace when switching. greenlet restores the exception information correctly since version 0.3.2. gevent now requires greenlet >= 0.3.2
- Added gevent.wait() and gevent.iwait(). This is like gevent.joinall() but supports more objects, including Greenlet, Event, Semaphore, Popen. Without arguments it waits for the event loop to finish (previously gevent.run() did that). gevent.run will be removed before final release and gevent.joinall() might be deprecated.
...
...
@@ -189,7 +190,7 @@ Misc:
Release 1.0b4 (Sep 6, 2012)
---------------------------
===========================
- Added gevent.os module with 'read' and 'write' functions. Patch by Geert Jansen.
- Moved gevent.hub.fork to gevent.os module (it is still available as gevent.fork).
...
...
@@ -199,7 +200,7 @@ Release 1.0b4 (Sep 6, 2012)
Release 1.0b3 (Jul 27, 2012)
----------------------------
============================
- New gevent.subprocess module
- New gevent.fileobject module
...
...
@@ -226,7 +227,7 @@ Release 1.0b3 (Jul 27, 2012)
Release 1.0b2 (Apr 11, 2012)
----------------------------
============================
Major and backward-incompatible changes:
...
...
@@ -278,7 +279,7 @@ Developer utilities:
Release 1.0b1 (Jan 10, 2012)
----------------------------
============================
Backward-incompatible changes:
...
...
@@ -370,7 +371,7 @@ coros:
Release 1.0a3 (Sep 15, 2011)
----------------------------
============================
Added 'ref' property to all watchers. Settings it to False make watcher call ev_unref/ev_ref appropriately so that this watcher does not prevent loop.run()/hub.join()/run() from exiting.
Made resolver_ares.Resolver use 'ref' property for internal watcher.
...
...
@@ -421,13 +422,13 @@ pywsgi: if we failed to send the reply, change 'status' to socket error so that
Release 1.0a2 (Aug 2, 2011)
---------------------------
===========================
Fixed a bug in gevent.queue.Channel class. (Thanks to Alexey Borzenkov)
Release 1.0a1 (Aug 2, 2011)
---------------------------
===========================
Backward-incompatible changes:
...
...
@@ -500,7 +501,7 @@ Miscellaneous:
Release 0.13.8 (September 6, 2012)
----------------------------------
==================================
- Fixed issue #80: gevent.httplib failed with RequestFailed errors because timeout was reset to 1s. Patch by Tomasz Prus.
- core: fix compilation with the latest Cython: remove emit_ifdef/emit_else/emit_endif.
- Added ``__copy__`` method to :class:`gevent.local.local` class that implements copy semantics compatible with built-in ``threading.local``. Patch by **Galfy Pundee**.
- Fixed :class:`StreamServer` class to catch ``EWOULDBLOCK`` rather than ``EAGAIN``. This fixes lots of spurious tracebacks on Windows where these two constants are not the same. Patch by **Alexey Borzenkov**.
- Fixed typo in :mod:`gevent.httplib` that rendered it unusable.
- Removed unnecessary delay in :func:`getaddrinfo <gevent.socket.getaddrinfo>` by calling ``resolve_ipv4`` and ``resolve_ipv6`` concurrently rather than sequentially in ``AF_UNSPEC`` case.
Release 0.13.2 (Jan 28, 2011)
-----------------------------
=============================
- Added :mod:`gevent.httplib` -- **experimental** support for libevent-http client (issue #9). Thanks to **Tommie Gannert**, **Örjan Persson**.
- Fixed crash on Mac OS X (issue #31). Patch by **Alexey Borzenkov**.
...
...
@@ -584,7 +585,7 @@ Release 0.13.2 (Jan 28, 2011)
Release 0.13.1 (Sep 23, 2010)
-----------------------------
=============================
Release highlights:
...
...
@@ -632,7 +633,7 @@ Miscellaneous:
Release 0.13.0 (Jul 14, 2010)
-----------------------------
=============================
Release highlights:
...
...
@@ -759,13 +760,13 @@ Thanks to **Uriel Katz** for :mod:`pywsgi` patches.
Release 0.12.2 (Mar 2, 2010)
----------------------------
============================
* Fixed http server to put the listening socket into a non-blocking mode. Contributed by **Ralf Schmitt**.
Release 0.12.1 (Feb 26, 2010)
-----------------------------
=============================
* Removed a symlink from the distribution (that causes pip to fail). Thanks to **Brad Clements** for reporting it.
* setup.py: automatically create symlink from ``build/lib.../gevent/core.so`` to ``gevent/core.so``.
...
...
@@ -776,7 +777,7 @@ Release 0.12.1 (Feb 26, 2010)
Release 0.12.0 (Feb 5, 2010)
----------------------------
============================
Release highlights:
...
...
@@ -864,7 +865,7 @@ Miscellaneous:
Release 0.11.2 (Dec 10, 2009)
-----------------------------
=============================
* Fixed :mod:`wsgi` to unquote ``environ['PATH_INFO']`` before passing to application.
* Added ``SERVER_SOFTWARE`` variable to :mod:`wsgi` environ.
...
...
@@ -873,7 +874,7 @@ Release 0.11.2 (Dec 10, 2009)
Release 0.11.1 (Nov 15, 2009)
-----------------------------
=============================
* Fixed bug in :func:`select.select` function. Passing non-empty list of write descriptors used to cause this function to fail.
* Changed setup.py to go ahead with the compilation even if the actual version of libevent cannot be determined (version 1.x.x is assumed in that case).
...
...
@@ -885,7 +886,7 @@ Contributed by **Ludvig Ericson**:
Release 0.11.0 (Oct 9, 2009)
----------------------------
============================
* Fixed timeout bug in :func:`joinall`, :meth:`Greenlet.join`, :meth:`pool.Pool.join`: if timeout has expired
it used to raise :class:`Timeout`; now it returns silently.
...
...
@@ -921,7 +922,7 @@ Release 0.11.0 (Oct 9, 2009)
Release 0.10.0 (Aug 26, 2009)
-----------------------------
=============================
* Changed :class:`Timeout` API in a backward-incompatible way:
:meth:`Timeout.__init__` does not start the timer immediately anymore;
...
...
@@ -995,7 +996,7 @@ test case for WSGI double content-length header bug.
Release 0.9.3 (Aug 3, 2009)
---------------------------
===========================
* Fixed all known bugs in the :mod:`gevent.queue` module and made it 2.4-compatible.
:class:`LifoQueue` and :class:`PriorityQueue` are implemented as well.
...
...
@@ -1016,7 +1017,7 @@ Release 0.9.3 (Aug 3, 2009)
Release 0.9.2 (Jul 20, 2009)
----------------------------
============================
* Simplified :mod:`gevent.socket`'s implementation and fixed SSL bug reported on eventletdev
by **Cesar Alaniz** as well as failures in ``test_socket_ssl.py``.