{ "info": { "author": "Roman Miroshnychenko", "author_email": "roman1972@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI :: Server" ], "description": "asyncore-wsgi\n=============\n\nThis is a single-threaded asynchronous WSGI server with WebSockets support\nbased on `asyncore `_ module.\nIt should be compatible with Python 2.7 and 3.\n\nExample:\n\n.. code-block:: python\n\n from from wsgiref.simple_server import demo_app\n from asyncore_wsgi import AsyncWebSocketHandler, make_server\n\n\n class SimpleEchoHandler(AsyncWebSocketHandler):\n\n def handleMessage(self):\n print('Received WebSocket message: {}'.format(self.data))\n self.sendMessage(self.data)\n\n def handleConnected(self):\n print('WebSocket connected')\n\n def handleClose(self):\n print('WebSocket closed')\n\n\n httpd = make_server('', 8000, demo_app, ws_handler_class=SimpleEchoHandler)\n httpd.serve_forever()\n\nThe server in the preceding example serves a demo WSGI app from\nthe Standard Library and the echo WebSocket handler on ``'/ws'`` path.\n\nWebSocket part was borrowed from\n`this project `_.\n\nLicense\n-------\n\nMIT, see LICENSE.txt\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/romanvm/asyncore-wsgi", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "asyncore-wsgi", "package_url": "https://pypi.org/project/asyncore-wsgi/", "platform": "", "project_url": "https://pypi.org/project/asyncore-wsgi/", "project_urls": { "Homepage": "https://github.com/romanvm/asyncore-wsgi" }, "release_url": "https://pypi.org/project/asyncore-wsgi/0.0.9/", "requires_dist": null, "requires_python": "", "summary": "Asynchronous WSGI and WebSocket server based on asyncore module", "version": "0.0.9" }, "last_serial": 4586735, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "19653d44d894ae82a5b35e1535533360", "sha256": "b1f5829daafff2983c4dbf7ed753b7f7c5ae649516597c8b478adf472052cbcd" }, "downloads": -1, "filename": "asyncore_wsgi-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19653d44d894ae82a5b35e1535533360", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 10580, "upload_time": "2018-03-18T22:08:51", "url": "https://files.pythonhosted.org/packages/7c/5d/0aad821789af0c737a0483331191ad348b08fc6d9e44e00098d2798009d4/asyncore_wsgi-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62b815df3fbec438879c3d2105f553a3", "sha256": "9a0abd1a9cb032bf47b22c420968b8408b2dc0ab4d37c45b23930b4f16b98142" }, "downloads": -1, "filename": "asyncore-wsgi-0.0.3.tar.gz", "has_sig": false, "md5_digest": "62b815df3fbec438879c3d2105f553a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7910, "upload_time": "2018-03-18T22:08:49", "url": "https://files.pythonhosted.org/packages/12/ad/7a50c0760e05c9fd6ff215970bceab9c53997cac7d2481483eb803d2d231/asyncore-wsgi-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "277960597114af66bbc8ea4d8cbf05e3", "sha256": "c3c1b52da6a3df70e2ff02a36df16b303c77699c6c668fba3f04614b6997dab3" }, "downloads": -1, "filename": "asyncore_wsgi-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "277960597114af66bbc8ea4d8cbf05e3", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9460, "upload_time": "2018-08-02T18:39:35", "url": "https://files.pythonhosted.org/packages/f4/a1/acebe3dbf8014f2a67945c630d8232692daa7af6962b04471fc57d2d9d61/asyncore_wsgi-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "74f6ab0a99e997911e40bf9c3079d371", "sha256": "995016b57819c2e9c604d3e176f5575d0d25043096ef3d5935e9f6c85e16f2d3" }, "downloads": -1, "filename": "asyncore-wsgi-0.0.4.tar.gz", "has_sig": false, "md5_digest": "74f6ab0a99e997911e40bf9c3079d371", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8759, "upload_time": "2018-08-02T18:39:33", "url": "https://files.pythonhosted.org/packages/d0/41/af5025c80316c6ad2154d40a36c429ebe25965ddc7c4a4812b2ca45604bd/asyncore-wsgi-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "0e17a40a41612bc5aaac6c0cd57ecf60", "sha256": "26b8448dd813001670066e80a006fc6e9573656fa45b4e5eb4e4d255054bf1f5" }, "downloads": -1, "filename": "asyncore_wsgi-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0e17a40a41612bc5aaac6c0cd57ecf60", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9866, "upload_time": "2018-08-06T11:35:11", "url": "https://files.pythonhosted.org/packages/8f/3c/9967d807a4d415cc3fcdd177e948e13b0b0eefddf4870a7872e9d2925346/asyncore_wsgi-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "feae856a49bf26cbdec62341d80fceab", "sha256": "9462b48f2528f36b2b9cc0ad4c22cd2bccb2304ad0933b15fc0bd206ad8c84d7" }, "downloads": -1, "filename": "asyncore-wsgi-0.0.5.tar.gz", "has_sig": false, "md5_digest": "feae856a49bf26cbdec62341d80fceab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9119, "upload_time": "2018-08-06T11:35:10", "url": "https://files.pythonhosted.org/packages/b4/f8/ad202f0d3e763db636d29e6dfdc2571ad5448aa2ce810dbef0027e4e44af/asyncore-wsgi-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "cee5cb7df17e8ac5cd91af7233286eaa", "sha256": "16eeb092261b268302dd908193a4aa9a81d8b4855cad92f8dc94c32236166fcd" }, "downloads": -1, "filename": "asyncore_wsgi-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cee5cb7df17e8ac5cd91af7233286eaa", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 9863, "upload_time": "2018-08-09T09:04:50", "url": "https://files.pythonhosted.org/packages/5a/8b/a0b3f57bb7fcdee11542485134e119d962cee9a970664476034150075e8b/asyncore_wsgi-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2df5d84a0ad65cfaaf1a809f1df8f589", "sha256": "9eaed376cddc24d225eebb09850710bbee1d260f05f4512688a685a2e12f2705" }, "downloads": -1, "filename": "asyncore-wsgi-0.0.6.tar.gz", "has_sig": false, "md5_digest": "2df5d84a0ad65cfaaf1a809f1df8f589", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9112, "upload_time": "2018-08-09T09:04:48", "url": "https://files.pythonhosted.org/packages/c1/a1/e459bd71ca46904b27391240d403f072cd45093e7608551a1f42cf5cd6b4/asyncore-wsgi-0.0.6.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "f947ae74dd09c5dfc1fd79f4b7cb9371", "sha256": "de043ee1544ae1a2602ef6f8cde41b7bd9f9b29d459e1c1514fa1c655aa7c841" }, "downloads": -1, "filename": "asyncore_wsgi-0.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f947ae74dd09c5dfc1fd79f4b7cb9371", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9973, "upload_time": "2018-12-11T18:40:36", "url": "https://files.pythonhosted.org/packages/91/3c/e69ec65aa055a733923b0fc4659e1a0811a917c4dc93156d56a671bcfb25/asyncore_wsgi-0.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0d5438c4768fad8de444424a23c3112", "sha256": "27ddeecdc4d79c98a687e899c5b7d2df38bb9538b65c92abddd2009f961835a8" }, "downloads": -1, "filename": "asyncore-wsgi-0.0.9.tar.gz", "has_sig": false, "md5_digest": "b0d5438c4768fad8de444424a23c3112", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10054, "upload_time": "2018-12-11T18:40:37", "url": "https://files.pythonhosted.org/packages/b6/9e/800239e0ba9d5b3b07ddc5c11711da9f0da2347e01c56f84d8cb53efac0a/asyncore-wsgi-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f947ae74dd09c5dfc1fd79f4b7cb9371", "sha256": "de043ee1544ae1a2602ef6f8cde41b7bd9f9b29d459e1c1514fa1c655aa7c841" }, "downloads": -1, "filename": "asyncore_wsgi-0.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f947ae74dd09c5dfc1fd79f4b7cb9371", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9973, "upload_time": "2018-12-11T18:40:36", "url": "https://files.pythonhosted.org/packages/91/3c/e69ec65aa055a733923b0fc4659e1a0811a917c4dc93156d56a671bcfb25/asyncore_wsgi-0.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0d5438c4768fad8de444424a23c3112", "sha256": "27ddeecdc4d79c98a687e899c5b7d2df38bb9538b65c92abddd2009f961835a8" }, "downloads": -1, "filename": "asyncore-wsgi-0.0.9.tar.gz", "has_sig": false, "md5_digest": "b0d5438c4768fad8de444424a23c3112", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10054, "upload_time": "2018-12-11T18:40:37", "url": "https://files.pythonhosted.org/packages/b6/9e/800239e0ba9d5b3b07ddc5c11711da9f0da2347e01c56f84d8cb53efac0a/asyncore-wsgi-0.0.9.tar.gz" } ] }