{ "info": { "author": "V G", "author_email": "veegee@veegee.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Internet", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: System :: Networking" ], "description": "guv = greenlets + libuv\n=======================\n\n|Version| |PyPI| |BuildStatus|\n\n:Documentation: http://guv.readthedocs.org/\n:Source: http://github.com/veegee/guv\n:Keywords: guv, greenlet, gevent, eventlet\n\n\nAbout\n-----\n\nguv is a fast networking library and WSGI server (like gevent/eventlet) for\n**Python >= 3.2 and pypy3**\n\nThe event loop backend is pyuv_cffi_, which aims to be fully compatible with the\npyuv_ interface. pyuv_cffi is fully supported on CPython and pypy3. libuv_\n>= 1.0.0 is required.\n\nAsynchronous DNS queries are supported via dnspython3. To forcefully disable\ngreendns, set the environment variable ``GUV_NO_GREENDNS`` to any value.\n\nguv currently only runs on POSIX-compliant operating systems, but Windows\nsupport is not far off and can be added in the near future if there is a demand\nfor this.\n\nThis library is actively maintained and has a zero bug policy. Please submit\nissues and pull requests, and bugs will be fixed immediately.\n\n**This project is under active development and any help is appreciated.**\n\n\nQuickstart\n----------\n\nSince guv is currently in alpha release state and under active development, it\nis recommended to pull often and install manually::\n\n git clone https://github.com/veegee/guv.git\n cd guv\n python setup.py install\n\nNote: libuv_ >= 1.0.0 is required. This is the first stable version but is a\nrecent release and may not be available in Debian/Ubuntu stable repositories, so\nyou must compile and install manually.\n\nServe your WSGI app using guv directly\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n import guv; guv.monkey_patch()\n import guv.wsgi\n\n app = \n\n if __name__ == '__main__':\n server_sock = guv.listen(('0.0.0.0', 8001))\n guv.wsgi.serve(server_sock, app)\n\nServe your WSGI app using guv with gunicorn_\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n::\n\n gunicorn -w 4 -b 127.0.0.1:8001 -k guv.GuvWorker wsgi_app:app\n\nNote: you can use wrk_ to benchmark the performance of guv.\n\nCrawl the web: efficiently make multiple \"simultaneous\" requests\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n.. code-block:: python\n\n import guv; guv.monkey_patch()\n import requests\n\n def get_url(url):\n print('get_url({})'.format(url))\n return requests.get(url)\n\n def main():\n urls = ['http://gnu.org'] * 10\n urls += ['https://eff.org'] * 10\n\n pool = guv.GreenPool()\n results = pool.starmap(get_url, zip(urls))\n\n for i, resp in enumerate(results):\n print('{}: done, length: {}'.format(i, len(resp.text)))\n\n if __name__ == '__main__':\n main()\n\n\nGuarantees\n----------\n\nThis library makes the following guarantees:\n\n* `Semantic versioning`_ is strictly followed\n* Compatible with Python >= 3.2.0 and PyPy3 >= 2.3.1 (Python 3.2.5)\n\n\n.. _pyuv: https://github.com/saghul/pyuv\n.. _pyuv_cffi: https://github.com/veegee/guv/tree/develop/pyuv_cffi\n.. _libuv: https://github.com/libuv/libuv\n.. _gunicorn: https://github.com/benoitc/gunicorn\n.. _Semantic versioning: http://semver.org\n.. _wrk: https://github.com/wg/wrk\n\n.. |Version| image:: https://img.shields.io/github/tag/veegee/guv.svg\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/guv.svg\n :target: https://pypi.python.org/pypi/guv/\n :alt: Latest Version\n\n.. |BuildStatus| image:: https://travis-ci.org/veegee/guv.svg?branch=develop\n :target: https://travis-ci.org/veegee/guv", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://guv.readthedocs.org", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "guv", "package_url": "https://pypi.org/project/guv/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/guv/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://guv.readthedocs.org" }, "release_url": "https://pypi.org/project/guv/0.35.2/", "requires_dist": null, "requires_python": null, "summary": "Python 3 networking library based on greenlets and libuv", "version": "0.35.2" }, "last_serial": 1460722, "releases": { "0.31.0": [ { "comment_text": "", "digests": { "md5": "cc6ce03767354b00268919af243cb0c0", "sha256": "c2b6701f49c48c9cdf3f47059b40cf26e70bac6ea9a2d1215db44a2d3734faba" }, "downloads": -1, "filename": "guv-0.31.0.tar.gz", "has_sig": false, "md5_digest": "cc6ce03767354b00268919af243cb0c0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79466, "upload_time": "2014-12-01T22:10:05", "url": "https://files.pythonhosted.org/packages/c2/fd/3ed99aac3ce28bb5e77204f5c958bbd1c1f5ca2455b918dae97dfa5850a1/guv-0.31.0.tar.gz" } ], "0.31.2": [ { "comment_text": "", "digests": { "md5": "fdb2d4f1939a634f2f9a06db459f7e5b", "sha256": "25c8fc9521875ea50001a8eec08912c2b6f9eb1482f547fab0c1c9081751881d" }, "downloads": -1, "filename": "guv-0.31.2.tar.gz", "has_sig": false, "md5_digest": "fdb2d4f1939a634f2f9a06db459f7e5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76779, "upload_time": "2014-12-04T09:39:36", "url": "https://files.pythonhosted.org/packages/6c/c6/cbf3c518830fb6a300191b83d786c2e1c7fc447f5446c8da28838056dfd4/guv-0.31.2.tar.gz" } ], "0.32.0": [ { "comment_text": "", "digests": { "md5": "962041c83667d38db9b00ef726fd3bcc", "sha256": "272a514cd26323ef37f49593a3580fbf0f83d953090e60cb077e2d03be904dd2" }, "downloads": -1, "filename": "guv-0.32.0.tar.gz", "has_sig": false, "md5_digest": "962041c83667d38db9b00ef726fd3bcc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 76783, "upload_time": "2014-12-04T23:09:32", "url": "https://files.pythonhosted.org/packages/fa/e9/30133793807c85c30b469974c47d72c3763aafb4a26e29f4ba543fa8108d/guv-0.32.0.tar.gz" } ], "0.33.2": [ { "comment_text": "", "digests": { "md5": "527a09eb2efb3c9b0b64a2bc2bdcb127", "sha256": "ae17adfed873028865a384da182064d4b79edd2b30fc843920f74eda30404fff" }, "downloads": -1, "filename": "guv-0.33.2.tar.gz", "has_sig": false, "md5_digest": "527a09eb2efb3c9b0b64a2bc2bdcb127", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79193, "upload_time": "2014-12-06T00:03:03", "url": "https://files.pythonhosted.org/packages/1c/bb/ec99577074cf4d94b8baa2208b4256bdd36a5fe9596e21ace4f78f855d75/guv-0.33.2.tar.gz" } ], "0.33.4": [ { "comment_text": "", "digests": { "md5": "de01882f196d038a53a1af7ad1651607", "sha256": "5461d62bfda1b601397f554021725a0cb42c095b89b45baec4391b20be9e6732" }, "downloads": -1, "filename": "guv-0.33.4.tar.gz", "has_sig": false, "md5_digest": "de01882f196d038a53a1af7ad1651607", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 79205, "upload_time": "2014-12-06T02:28:55", "url": "https://files.pythonhosted.org/packages/29/d8/61a39346a74385bec5eaa8b4014daeaf97a586d2ad92715ce2031e3c6f39/guv-0.33.4.tar.gz" } ], "0.33.5": [ { "comment_text": "", "digests": { "md5": "09f8aac64cacaefaf0c8d6768b497c4b", "sha256": "e99404d6a5d8e44e5811dffe2d8d7bb08ff80ed006d9c28457959e36dca14dd7" }, "downloads": -1, "filename": "guv-0.33.5.tar.gz", "has_sig": false, "md5_digest": "09f8aac64cacaefaf0c8d6768b497c4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83796, "upload_time": "2014-12-08T19:52:42", "url": "https://files.pythonhosted.org/packages/5e/9d/755bb2a54dd204833e6d27acbea621dc4d7b6504755f13ec52c685d4a71c/guv-0.33.5.tar.gz" } ], "0.34.0": [ { "comment_text": "", "digests": { "md5": "0f07832972e44c2eaac4e5547535ffdf", "sha256": "3b39757f11b0eaeb66f3c34838ebe69a9cbbc297f60de072dac6d4b52fcb3281" }, "downloads": -1, "filename": "guv-0.34.0.tar.gz", "has_sig": false, "md5_digest": "0f07832972e44c2eaac4e5547535ffdf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82469, "upload_time": "2014-12-10T04:55:32", "url": "https://files.pythonhosted.org/packages/73/2b/793701956d8681b9799032719c1fb4527a55e44854a571312862e3c769bf/guv-0.34.0.tar.gz" } ], "0.34.2": [ { "comment_text": "", "digests": { "md5": "1a60b51e435cf8417dbcd8ad74fdfa1f", "sha256": "cfc39ff8951ff0ec33b069779ec647475f59e44a6a01e096801a3266245fc9d6" }, "downloads": -1, "filename": "guv-0.34.2.tar.gz", "has_sig": false, "md5_digest": "1a60b51e435cf8417dbcd8ad74fdfa1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84458, "upload_time": "2014-12-13T20:54:21", "url": "https://files.pythonhosted.org/packages/77/b3/e00765fb34459a5797a45374d2f934b387fbd5afef946de043d43a31f30d/guv-0.34.2.tar.gz" } ], "0.35.0": [ { "comment_text": "", "digests": { "md5": "3174a84d1dcd920a27686889f1ac140b", "sha256": "f674fa531b09e94eb3292e3624eb8115615464e0215a641729594324f299d3dc" }, "downloads": -1, "filename": "guv-0.35.0.tar.gz", "has_sig": false, "md5_digest": "3174a84d1dcd920a27686889f1ac140b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85428, "upload_time": "2014-12-14T23:34:04", "url": "https://files.pythonhosted.org/packages/2f/df/491d216cd96e27924dca5a2899884ca422325595032ed03668f9baef6b2c/guv-0.35.0.tar.gz" } ], "0.35.1": [ { "comment_text": "", "digests": { "md5": "7b46525057be5ddddb96a8fee53bf94c", "sha256": "f5220926bb7aec6e517695bb77be041fb2115edf1fca6b18a82d9575ecfca45b" }, "downloads": -1, "filename": "guv-0.35.1.tar.gz", "has_sig": false, "md5_digest": "7b46525057be5ddddb96a8fee53bf94c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85760, "upload_time": "2015-02-01T22:18:02", "url": "https://files.pythonhosted.org/packages/bd/a3/12394caaff6adce2115db879c8d6f3aad57b2d54b856f9f91f14964d8d76/guv-0.35.1.tar.gz" } ], "0.35.2": [ { "comment_text": "", "digests": { "md5": "fad8357c8dbc6fc194e16c81fb9a2d81", "sha256": "b35156404614974b6a6ef2f9209c02649effdfb78841c8e6dec874f4ce6fd0cf" }, "downloads": -1, "filename": "guv-0.35.2.tar.gz", "has_sig": false, "md5_digest": "fad8357c8dbc6fc194e16c81fb9a2d81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86527, "upload_time": "2015-03-14T08:02:13", "url": "https://files.pythonhosted.org/packages/0a/ad/fd564c269ecdc69c43162523bd5083a1abd4f59cd11a4a2a31dd81d38793/guv-0.35.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fad8357c8dbc6fc194e16c81fb9a2d81", "sha256": "b35156404614974b6a6ef2f9209c02649effdfb78841c8e6dec874f4ce6fd0cf" }, "downloads": -1, "filename": "guv-0.35.2.tar.gz", "has_sig": false, "md5_digest": "fad8357c8dbc6fc194e16c81fb9a2d81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86527, "upload_time": "2015-03-14T08:02:13", "url": "https://files.pythonhosted.org/packages/0a/ad/fd564c269ecdc69c43162523bd5083a1abd4f59cd11a4a2a31dd81d38793/guv-0.35.2.tar.gz" } ] }