{ "info": { "author": "Brent Tubbs", "author_email": "brent.tubbs@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Programming Language :: Python", "Topic :: Internet", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "==========\ngwebsocket\n==========\n\n`gwebsocket`_ is a WebSocket library for the gevent_ networking library.\n\n::\n\n from gevent import pywsgi\n from gwebsocket.handler import WebSocketHandler\n\n def websocket_app(environ, start_response):\n if environ[\"PATH_INFO\"] == '/echo':\n ws = environ[\"wsgi.websocket\"]\n message = ws.receive()\n ws.send(message)\n\n server = pywsgi.WSGIServer((\"\", 8000), websocket_app,\n handler_class=WebSocketHandler)\n server.serve_forever()\n\nInstallation\n------------\n\nThe easiest way to install gwebsocket is directly from PyPi_ using pip or\nsetuptools by running the commands below::\n\n $ pip install gwebsocket\n\n\nGunicorn Worker\n^^^^^^^^^^^^^^^\n\nUsing Gunicorn it is even more easy to start a server. Only the\n`websocket_app` from the previous example is required to start the server.\nStart Gunicorn using the following command and worker class to enable WebSocket\nfuntionality for the application.\n\n::\n\n gunicorn -k \"gwebsocket.gunicorn.GWebSocketWorker\" wsgi:websocket_app\n\nPerformance\n^^^^^^^^^^^\n\n`gwebsocket`_ is pretty fast, but can be accelerated further by\ninstalling `wsaccel `_ and `ujson` or `simplejson`::\n\n $ pip install wsaccel ujson\n\n`gwebsocket`_ automatically detects ``wsaccell`` and uses the Cython\nimplementation for UTF8 validation and later also frame masking and demasking.\n\nGet in touch\n^^^^^^^^^^^^\n\nIssues can be created\nat `Bitbucket `_.\n\nAcknowledgements\n^^^^^^^^^^^^^^^^\n\ngwebsocket is based on `Jeffrey Gelens`_' `gevent-websocket`_.\ngwebsocket omits gevent-websocket's WAMP features and WebSocketApplication mini\nframework, in favor of providing just a minimal library for use in other\nframeworks. gwebsocket also makes it possible to do cleanup on close without\nbuilding your app as a WebSocketApplication.\n\n.. _gwebsocket: http://www.bitbucket.org/btubbs/gwebsocket/\n.. _gevent: http://www.gevent.org/\n.. _Jeffrey Gelens: http://www.gelens.org/\n.. _PyPi: http://pypi.python.org/pypi/gevent-websocket/\n.. _repository: http://www.bitbucket.org/Jeffrey/gevent-websocket/\n.. _RFC6455: http://datatracker.ietf.org/doc/rfc6455/?include_text=1", "description_content_type": null, "docs_url": null, "download_url": "https://bitbucket.org/btubbs/gwebsocket", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/btubbs/gwebsocket", "keywords": null, "license": "Copyright 2011-2013 Jeffrey Gelens \n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.", "maintainer": null, "maintainer_email": null, "name": "gwebsocket", "package_url": "https://pypi.org/project/gwebsocket/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/gwebsocket/", "project_urls": { "Download": "https://bitbucket.org/btubbs/gwebsocket", "Homepage": "https://bitbucket.org/btubbs/gwebsocket" }, "release_url": "https://pypi.org/project/gwebsocket/0.9.9/", "requires_dist": null, "requires_python": null, "summary": "Websocket handler for the gevent pywsgi server, a Python network library", "version": "0.9.9" }, "last_serial": 2440921, "releases": { "0.9.5": [ { "comment_text": "", "digests": { "md5": "015dcdd87f30d4676562cc7d39bb3c3a", "sha256": "143fb07e9907bf45c0e8118bea0979489602ad42a28548152c28e859d6449cb4" }, "downloads": -1, "filename": "gwebsocket-0.9.5.tar.gz", "has_sig": false, "md5_digest": "015dcdd87f30d4676562cc7d39bb3c3a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12354, "upload_time": "2015-05-06T22:12:35", "url": "https://files.pythonhosted.org/packages/05/56/178e4c099254da08d3341ff4e145412811ad3b984eab15df33fd5bbd7a2b/gwebsocket-0.9.5.tar.gz" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "062d48a89767ce20c790ca2f5f2facaf", "sha256": "b5474fdaf862bbb37d5f2c6c82df486b3059c950f6c16657611e6dadc395faa8" }, "downloads": -1, "filename": "gwebsocket-0.9.6.tar.gz", "has_sig": false, "md5_digest": "062d48a89767ce20c790ca2f5f2facaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12365, "upload_time": "2015-05-06T22:39:01", "url": "https://files.pythonhosted.org/packages/ab/44/2523b71de93d2b133c76581df873839a9e923ea2cb76fcaef940c7602f52/gwebsocket-0.9.6.tar.gz" } ], "0.9.7": [ { "comment_text": "", "digests": { "md5": "8621b7c73b25459fa29941609ca6bca5", "sha256": "052aad5743ce1ffd388a90c03becd64024135e9cd2742fa94e535cf6b0f96ee0" }, "downloads": -1, "filename": "gwebsocket-0.9.7.tar.gz", "has_sig": false, "md5_digest": "8621b7c73b25459fa29941609ca6bca5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13088, "upload_time": "2015-06-17T22:58:22", "url": "https://files.pythonhosted.org/packages/7c/85/5b9d696e5c1f518c8d9ed3440d513fe53f2438e61eaac8e98034bd192843/gwebsocket-0.9.7.tar.gz" } ], "0.9.8": [ { "comment_text": "", "digests": { "md5": "96c943e7d95aaa08de51b9df47c515f6", "sha256": "bb0098e9475372458c542391db10a5f5f3e91389a0a49db6ddedffca880ea491" }, "downloads": -1, "filename": "gwebsocket-0.9.8.tar.gz", "has_sig": false, "md5_digest": "96c943e7d95aaa08de51b9df47c515f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13090, "upload_time": "2016-10-14T19:26:01", "url": "https://files.pythonhosted.org/packages/cf/b7/8c4ba1ac086e621a3aa9ddc93da7ede1e2379cbf081fe37836e0b99fbd54/gwebsocket-0.9.8.tar.gz" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "0bf1bd95c46cde6b494a1740e4f68272", "sha256": "f36170b33624f5b4564a1d4ecfaea8126dc1b2cb058a547bf551c00e594097bc" }, "downloads": -1, "filename": "gwebsocket-0.9.9.tar.gz", "has_sig": false, "md5_digest": "0bf1bd95c46cde6b494a1740e4f68272", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13244, "upload_time": "2016-11-03T20:01:28", "url": "https://files.pythonhosted.org/packages/28/d2/e03e398bae8014d718dda6b3e4feef3ccf8e061d4d424c024009f4c6158d/gwebsocket-0.9.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0bf1bd95c46cde6b494a1740e4f68272", "sha256": "f36170b33624f5b4564a1d4ecfaea8126dc1b2cb058a547bf551c00e594097bc" }, "downloads": -1, "filename": "gwebsocket-0.9.9.tar.gz", "has_sig": false, "md5_digest": "0bf1bd95c46cde6b494a1740e4f68272", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13244, "upload_time": "2016-11-03T20:01:28", "url": "https://files.pythonhosted.org/packages/28/d2/e03e398bae8014d718dda6b3e4feef3ccf8e061d4d424c024009f4c6158d/gwebsocket-0.9.9.tar.gz" } ] }