METADATA 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
  1. Metadata-Version: 2.1
  2. Name: gevent
  3. Version: 21.12.0
  4. Summary: Coroutine-based network library
  5. Home-page: http://www.gevent.org/
  6. Author: Denis Bilenko
  7. Author-email: denis.bilenko@gmail.com
  8. Maintainer: Jason Madden
  9. Maintainer-email: jason@nextthought.com
  10. License: MIT
  11. Project-URL: Bug Tracker, https://github.com/gevent/gevent/issues
  12. Project-URL: Source Code, https://github.com/gevent/gevent/
  13. Project-URL: Documentation, http://www.gevent.org
  14. Keywords: greenlet coroutine cooperative multitasking light threads monkey
  15. Platform: UNKNOWN
  16. Classifier: License :: OSI Approved :: MIT License
  17. Classifier: Programming Language :: Python :: 2.7
  18. Classifier: Programming Language :: Python :: 3.6
  19. Classifier: Programming Language :: Python :: 3.7
  20. Classifier: Programming Language :: Python :: 3.8
  21. Classifier: Programming Language :: Python :: 3.9
  22. Classifier: Programming Language :: Python :: 3.10
  23. Classifier: Programming Language :: Python :: Implementation :: CPython
  24. Classifier: Programming Language :: Python :: Implementation :: PyPy
  25. Classifier: Operating System :: MacOS :: MacOS X
  26. Classifier: Operating System :: POSIX
  27. Classifier: Operating System :: Microsoft :: Windows
  28. Classifier: Topic :: Internet
  29. Classifier: Topic :: Software Development :: Libraries :: Python Modules
  30. Classifier: Intended Audience :: Developers
  31. Classifier: Development Status :: 4 - Beta
  32. Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5
  33. Description-Content-Type: text/x-rst
  34. License-File: LICENSE
  35. License-File: NOTICE
  36. License-File: AUTHORS
  37. Requires-Dist: zope.event
  38. Requires-Dist: zope.interface
  39. Requires-Dist: setuptools
  40. Requires-Dist: greenlet (<2.0,>=1.1.0) ; platform_python_implementation == "CPython"
  41. Requires-Dist: cffi (>=1.12.2) ; platform_python_implementation == "CPython" and sys_platform == "win32"
  42. Provides-Extra: dnspython
  43. Requires-Dist: dnspython (<2.0,>=1.16.0) ; (python_version < "3.10") and extra == 'dnspython'
  44. Requires-Dist: idna ; (python_version < "3.10") and extra == 'dnspython'
  45. Provides-Extra: docs
  46. Requires-Dist: repoze.sphinx.autointerface ; extra == 'docs'
  47. Requires-Dist: sphinxcontrib-programoutput ; extra == 'docs'
  48. Requires-Dist: zope.schema ; extra == 'docs'
  49. Provides-Extra: events
  50. Provides-Extra: monitor
  51. Requires-Dist: psutil (>=5.7.0) ; (sys_platform != "win32" or platform_python_implementation == "CPython") and extra == 'monitor'
  52. Provides-Extra: recommended
  53. Requires-Dist: cffi (>=1.12.2) ; (platform_python_implementation == "CPython") and extra == 'recommended'
  54. Requires-Dist: dnspython (<2.0,>=1.16.0) ; (python_version < "3.10") and extra == 'recommended'
  55. Requires-Dist: idna ; (python_version < "3.10") and extra == 'recommended'
  56. Requires-Dist: selectors2 ; (python_version == "2.7") and extra == 'recommended'
  57. Requires-Dist: backports.socketpair ; (python_version == "2.7" and sys_platform == "win32") and extra == 'recommended'
  58. Requires-Dist: psutil (>=5.7.0) ; (sys_platform != "win32" or platform_python_implementation == "CPython") and extra == 'recommended'
  59. Provides-Extra: test
  60. Requires-Dist: requests ; extra == 'test'
  61. Requires-Dist: objgraph ; extra == 'test'
  62. Requires-Dist: cffi (>=1.12.2) ; (platform_python_implementation == "CPython") and extra == 'test'
  63. Requires-Dist: dnspython (<2.0,>=1.16.0) ; (python_version < "3.10") and extra == 'test'
  64. Requires-Dist: idna ; (python_version < "3.10") and extra == 'test'
  65. Requires-Dist: selectors2 ; (python_version == "2.7") and extra == 'test'
  66. Requires-Dist: futures ; (python_version == "2.7") and extra == 'test'
  67. Requires-Dist: mock ; (python_version == "2.7") and extra == 'test'
  68. Requires-Dist: backports.socketpair ; (python_version == "2.7" and sys_platform == "win32") and extra == 'test'
  69. Requires-Dist: contextvars (==2.4) ; (python_version > "3.0" and python_version < "3.7") and extra == 'test'
  70. Requires-Dist: coverage (>=5.0) ; (sys_platform != "win32") and extra == 'test'
  71. Requires-Dist: coveralls (>=1.7.0) ; (sys_platform != "win32") and extra == 'test'
  72. Requires-Dist: psutil (>=5.7.0) ; (sys_platform != "win32" or platform_python_implementation == "CPython") and extra == 'test'
  73. ========
  74. gevent
  75. ========
  76. .. image:: https://github.com/gevent/gevent/workflows/gevent%20testing/badge.svg
  77. :target: https://github.com/gevent/gevent/actions
  78. .. image:: https://ci.appveyor.com/api/projects/status/bqxl88yhpho223jg?svg=true
  79. :target: https://ci.appveyor.com/project/denik/gevent
  80. .. image:: https://coveralls.io/repos/gevent/gevent/badge.svg?branch=master&service=github
  81. :target: https://coveralls.io/github/gevent/gevent?branch=master
  82. ..
  83. This file is included in README.rst from the top-level
  84. so it is limited to pure ReST markup, not Sphinx.
  85. gevent is a coroutine_ -based Python_ networking library that uses
  86. `greenlet <https://greenlet.readthedocs.io>`_ to provide a high-level synchronous API on top of the `libev`_
  87. or `libuv`_ event loop.
  88. Features include:
  89. * Fast event loop based on `libev`_ or `libuv`_.
  90. * Lightweight execution units based on greenlets.
  91. * API that re-uses concepts from the Python standard library (for
  92. examples there are `events`_ and
  93. `queues`_).
  94. * `Cooperative sockets with SSL support <http://www.gevent.org/api/index.html#networking>`_
  95. * `Cooperative DNS queries <http://www.gevent.org/dns.html>`_ performed through a threadpool,
  96. dnspython, or c-ares.
  97. * `Monkey patching utility <http://www.gevent.org/intro.html#monkey-patching>`_ to get 3rd party modules to become cooperative
  98. * TCP/UDP/HTTP servers
  99. * Subprocess support (through `gevent.subprocess`_)
  100. * Thread pools
  101. gevent is `inspired by eventlet`_ but features a more consistent API,
  102. simpler implementation and better performance. Read why others `use
  103. gevent`_ and check out the list of the `open source projects based on
  104. gevent`_.
  105. gevent was written by `Denis Bilenko <http://denisbilenko.com/>`_.
  106. Since version 1.1, gevent is maintained by Jason Madden for
  107. `NextThought <https://nextthought.com>`_ with help from the
  108. `contributors <https://github.com/gevent/gevent/graphs/contributors>`_
  109. and is licensed under the MIT license.
  110. See `what's new`_ in the latest major release.
  111. Check out the detailed changelog_ for this version.
  112. .. _events: http://www.gevent.org/api/gevent.event.html#gevent.event.Event
  113. .. _queues: http://www.gevent.org/api/gevent.queue.html#gevent.queue.Queue
  114. .. _gevent.subprocess: http://www.gevent.org/api/gevent.subprocess.html#module-gevent.subprocess
  115. .. _coroutine: https://en.wikipedia.org/wiki/Coroutine
  116. .. _Python: http://python.org
  117. .. _libev: http://software.schmorp.de/pkg/libev.html
  118. .. _libuv: http://libuv.org
  119. .. _inspired by eventlet: http://blog.gevent.org/2010/02/27/why-gevent/
  120. .. _use gevent: http://groups.google.com/group/gevent/browse_thread/thread/4de9703e5dca8271
  121. .. _open source projects based on gevent: https://github.com/gevent/gevent/wiki/Projects
  122. .. _what's new: http://www.gevent.org/whatsnew_1_5.html
  123. .. _changelog: http://www.gevent.org/changelog.html
  124. Read the documentation online at http://www.gevent.org.
  125. Post issues on the `bug tracker`_, discuss and ask open ended
  126. questions on the `mailing list`_, and find announcements and
  127. information on the blog_ and `twitter (@gevent)`_.
  128. ===============================
  129. Installation and Requirements
  130. ===============================
  131. .. _installation:
  132. ..
  133. This file is included in README.rst so it is limited to plain
  134. ReST markup, not Sphinx.
  135. .. note::
  136. If you are reading this document on the `Python Package Index`_
  137. (PyPI, https://pypi.org/), it is specific to the version of gevent that
  138. you are viewing. If you are viewing this document on gevent.org, it
  139. refers to the current state of gevent in source control (git
  140. master).
  141. Supported Platforms
  142. ===================
  143. This version of gevent runs on Python 2.7.9 and up, and many versions
  144. of Python 3 (for exact details, see the classifiers on the PyPI page
  145. or in ``setup.py``). gevent requires the `greenlet <https://greenlet.readthedocs.io>`_
  146. library and will install the `cffi`_ library by default on Windows.
  147. The cffi library will become the default on all platforms in a future
  148. release of gevent.
  149. This version of gevent also runs on PyPy 7.0 or above. On PyPy, there
  150. are no external dependencies.
  151. gevent is tested on Windows, macOS, and Linux, and should run on most
  152. other Unix-like operating systems (e.g., FreeBSD, Solaris, etc.)
  153. .. note::
  154. Windows is supported as a tier 2, "best effort," platform. It is
  155. suitable for development, but not recommended for production.
  156. On Windows using the deprecated libev backend, gevent is
  157. limited to a maximum of 1024 open sockets due to
  158. `limitations in libev`_. This limitation should not exist
  159. with the default libuv backend.
  160. Older Versions of Python
  161. ------------------------
  162. Users of older versions of Python 2 or Python 3 may install an older
  163. version of gevent. Note that these versions are generally not
  164. supported.
  165. +-------+-------+
  166. |Python |Gevent |
  167. |Version|Version|
  168. +=======+=======+
  169. |2.5 |1.0.x |
  170. | | |
  171. +-------+-------+
  172. |2.6 |1.1.x |
  173. +-------+-------+
  174. |<= |1.2.x |
  175. |2.7.8 | |
  176. +-------+-------+
  177. |3.3 |1.2.x |
  178. +-------+-------+
  179. |3.4.0 -| 1.3.x |
  180. |3.4.2 | |
  181. | | |
  182. +-------+-------+
  183. |3.4.3 | 1.4.x |
  184. | | |
  185. | | |
  186. +-------+-------+
  187. |3.5.x | 20.9.0|
  188. | | |
  189. | | |
  190. +-------+-------+
  191. Installation
  192. ============
  193. .. note::
  194. This section is about installing released versions of gevent as
  195. distributed on the `Python Package Index`_. For building gevent
  196. from source, including customizing the build and embedded
  197. libraries, see `Installing From Source`_.
  198. .. _Python Package Index: http://pypi.org/project/gevent
  199. gevent and greenlet can both be installed with `pip`_, e.g., ``pip
  200. install gevent``. Installation using `buildout
  201. <http://docs.buildout.org/en/latest/>`_ is also supported.
  202. On Windows, macOS, and Linux, both gevent and greenlet are
  203. distributed as binary `wheels`_.
  204. .. tip::
  205. You need Pip 8.0 or later, or buildout 2.10.0 to install the binary
  206. wheels on Windows or macOS. On Linux, you'll need `pip 19
  207. <https://github.com/pypa/pip/pull/5008>`_ to install the
  208. manylinux2010 wheels.
  209. .. tip::
  210. Binary wheels cannot be installed on non-manylinux2010 compatible
  211. Linux systems, such as those that use `musl
  212. <https://musl.libc.org>`_, including `Alpine Linux
  213. <https://alpinelinux.org>`_. Those systems must install from source.
  214. .. tip::
  215. Beginning with gevent 20.12.0, 64-bit ARM binaries are distributed
  216. on PyPI for aarch64 manylinux2014 compatible systems. Installing these
  217. needs a very recent version of ``pip``. These wheels *do not*
  218. contain the c-ares resolver, are not tested, and are built with
  219. very low levels of optimizations. Serious production users of
  220. gevent on 64-bit ARM systems are encouraged to build their own
  221. binary wheels.
  222. Installing From Source
  223. ----------------------
  224. If you are unable to use the binary wheels (for platforms where no
  225. pre-built wheels are available or if wheel installation is disabled),
  226. you can build gevent from source. A normal ``pip install`` will
  227. fall back to doing this if no binary wheel is available. See
  228. `Installing From Source`_ for more, including common installation issues.
  229. Extra Dependencies
  230. ==================
  231. There are a number
  232. of additional libraries that extend gevent's functionality and will be
  233. used if they are available. All of these may be installed using
  234. `setuptools extras
  235. <https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies>`_,
  236. as named below, e.g., ``pip install gevent[events]``.
  237. events
  238. In versions of gevent up to and including 20.5.0, this provided configurable
  239. event support using `zope.event
  240. <https://pypi.org/project/zope.event>`_ and was highly
  241. recommended.
  242. In versions after that, this extra is empty and does nothing. It
  243. will be removed in gevent 21.0.
  244. dnspython
  245. Enables a pure-Python resolver, backed by `dnspython
  246. <https://pypi.org/project/dnspython>`_. On Python 2, this also
  247. includes `idna <https://pypi.org/project/idna>`_. They can be
  248. installed with the ``dnspython`` extra.
  249. .. note:: This is not compatible with Python 3.10 or dnspython 2.
  250. monitor
  251. Enhancements to gevent's self-monitoring capabilities. This
  252. includes the `psutil <https://pypi.org/project/psutil>`_ library
  253. which is needed to monitor memory usage. (Note that this may not
  254. build on all platforms.)
  255. recommended
  256. A shortcut for installing suggested extras together. This includes
  257. the non-test extras defined here, plus:
  258. - `backports.socketpair
  259. <https://pypi.org/project/backports.socketpair/>`_ on Python
  260. 2/Windows (beginning with release 20.6.0);
  261. - `selectors2 <https://pypi.org/project/selectors2/>`_ on Python 2 (beginning with release 20.6.0).
  262. test
  263. Everything needed to run the complete gevent test suite.
  264. .. _`pip`: https://pip.pypa.io/en/stable/installing/
  265. .. _`wheels`: http://pythonwheels.com
  266. .. _`gevent 1.5`: whatsnew_1_5.html
  267. .. _`Installing From Source`: https://www.gevent.org/development/installing_from_source.html
  268. .. _`cffi`: https://cffi.readthedocs.io
  269. .. _`limitations in libev`: http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#WIN32_PLATFORM_LIMITATIONS_AND_WORKA
  270. .. _bug tracker: https://github.com/gevent/gevent/issues
  271. .. _mailing list: http://groups.google.com/group/gevent
  272. .. _blog: https://dev.nextthought.com/blog/categories/gevent.html
  273. .. _twitter (@gevent): http://twitter.com/gevent