{ "info": { "author": "Valentin B.", "author_email": "valentin.be@protonmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Communications", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# anysocks\n\nThis library implements [the WebSocket protocol](https://tools.ietf.org/html/rfc6455) based on the [Sans-IO library wsproto](https://github.com/python-hyper/wsproto).\nI/O is handled by the [anyio project](https://github.com/agronholm/anyio) which makes this library compatible to asyncio, trio and curio.\n\n[![Build Status](https://travis-ci.org/clamor-py/anysocks.svg?branch=master)](https://travis-ci.org/clamor-py/anysocks)\n[![Maintainability](https://api.codeclimate.com/v1/badges/9346c58f1ff2ab188c9a/maintainability)](https://codeclimate.com/github/clamor-py/anysocks/maintainability)\n[![CodeFactor](https://www.codefactor.io/repository/github/clamor-py/anysocks/badge)](https://www.codefactor.io/repository/github/clamor-py/anysocks)\n[![Documentation Status](https://readthedocs.org/projects/anysocks/badge/?version=latest)](https://anysocks.readthedocs.io/en/latest/?badge=latest)\n[![PyPI version](https://badge.fury.io/py/anysocks.svg)](https://badge.fury.io/py/anysocks)\n\n## Installation\n\nThis library requires Python 3.5+. You can install it directly from PyPI:\n\n```sh\npython3 -m pip install -U anysocks\n```\n\nIf you want the cutting edge development version instead, install it directly from GitHub:\n\n```sh\npython3 -m pip install -U git+https://github.com/clamor-py/anysocks@master#egg=anysocks\n```\n\n## Documentation\n\nThis README only provides a short overview, see the full documentation [here](https://anysocks.readthedocs.io/en/latest).\n\n## Example\n\n```python\nimport anyio\nfrom anysocks import open_connection\n\n\nasync def main():\n async with open_connection('wss://echo.websocket.org') as con:\n print('Connection established!')\n\n # First, let's send some text to the server.\n text = input('What to send? ')\n await con.send(text)\n\n # Now, we receive and verify the server's response.\n message = await con.get_message()\n assert message == text, \"Received {}, expected {}\".format(message, text)\n\n print('Connection closed with code {}', con.close_code.value)\n\nanyio.run(main)\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/clamor-py/anysocks", "keywords": "anysocks websockets websocket client library anyio", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "anysocks", "package_url": "https://pypi.org/project/anysocks/", "platform": "", "project_url": "https://pypi.org/project/anysocks/", "project_urls": { "Documentation": "https://anysocks.readthedocs.io/en/latest", "Homepage": "https://github.com/clamor-py/anysocks", "Issue tracker": "https://github.com/clamor-py/anysocks/issues", "Source": "https://github.com/clamor-py/anysocks" }, "release_url": "https://pypi.org/project/anysocks/0.1.2/", "requires_dist": [ "async-generator (==1.10)", "anyio (==1.0.0)", "wsproto (==0.14.1)", "yarl (==1.3.0)" ], "requires_python": ">=3.5.0", "summary": "WebSocket protocol implementation for anyio", "version": "0.1.2" }, "last_serial": 5488028, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "637e7dd17a871ba224193d1b59a2d1cd", "sha256": "b39b5337a46a56da6d227afee2896f1da6cb97d65c3bc8137b09d87fe1e4466d" }, "downloads": -1, "filename": "anysocks-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "637e7dd17a871ba224193d1b59a2d1cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 11579, "upload_time": "2019-07-04T19:07:19", "url": "https://files.pythonhosted.org/packages/6c/b8/0ed88585f4590bc8e6d2b40fea67726a788e663b43a64363ce57dd20b72a/anysocks-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a3a44099b2222554ed351772512c03f", "sha256": "4842762f8fa89056779a0d9984eeb94717fb99b730f4272a88008d642a79f1fc" }, "downloads": -1, "filename": "anysocks-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4a3a44099b2222554ed351772512c03f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 17658, "upload_time": "2019-07-04T19:07:20", "url": "https://files.pythonhosted.org/packages/8c/30/cc5d7b71fb8c240f0b8641e9ee4db56be3fed5e3c57a37f92643adf89404/anysocks-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "637e7dd17a871ba224193d1b59a2d1cd", "sha256": "b39b5337a46a56da6d227afee2896f1da6cb97d65c3bc8137b09d87fe1e4466d" }, "downloads": -1, "filename": "anysocks-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "637e7dd17a871ba224193d1b59a2d1cd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5.0", "size": 11579, "upload_time": "2019-07-04T19:07:19", "url": "https://files.pythonhosted.org/packages/6c/b8/0ed88585f4590bc8e6d2b40fea67726a788e663b43a64363ce57dd20b72a/anysocks-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4a3a44099b2222554ed351772512c03f", "sha256": "4842762f8fa89056779a0d9984eeb94717fb99b730f4272a88008d642a79f1fc" }, "downloads": -1, "filename": "anysocks-0.1.2.tar.gz", "has_sig": false, "md5_digest": "4a3a44099b2222554ed351772512c03f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.0", "size": 17658, "upload_time": "2019-07-04T19:07:20", "url": "https://files.pythonhosted.org/packages/8c/30/cc5d7b71fb8c240f0b8641e9ee4db56be3fed5e3c57a37f92643adf89404/anysocks-0.1.2.tar.gz" } ] }