mit neuen venv und exe-Files
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
Download-URL: https://www.gitlab.com/noppo/gevent-websocket
|
||||
Description: ================
|
||||
gevent-websocket
|
||||
================
|
||||
|
||||
`gevent-websocket`_ is a WebSocket library for the gevent_ networking library.
|
||||
|
||||
Features include:
|
||||
|
||||
- Integration on both socket level or using an abstract interface.
|
||||
- RPC and PubSub framework using `WAMP`_ (WebSocket Application
|
||||
Messaging Protocol).
|
||||
- Easily extendible using a simple WebSocket protocol plugin API
|
||||
|
||||
|
||||
::
|
||||
|
||||
from geventwebsocket import WebSocketServer, WebSocketApplication, Resource
|
||||
|
||||
class EchoApplication(WebSocketApplication):
|
||||
def on_open(self):
|
||||
print "Connection opened"
|
||||
|
||||
def on_message(self, message):
|
||||
self.ws.send(message)
|
||||
|
||||
def on_close(self, reason):
|
||||
print reason
|
||||
|
||||
WebSocketServer(
|
||||
('', 8000),
|
||||
Resource({'/': EchoApplication})
|
||||
).serve_forever()
|
||||
|
||||
or a low level implementation::
|
||||
|
||||
from gevent import pywsgi
|
||||
from geventwebsocket.handler import WebSocketHandler
|
||||
|
||||
def websocket_app(environ, start_response):
|
||||
if environ["PATH_INFO"] == '/echo':
|
||||
ws = environ["wsgi.websocket"]
|
||||
message = ws.receive()
|
||||
ws.send(message)
|
||||
|
||||
server = pywsgi.WSGIServer(("", 8000), websocket_app,
|
||||
handler_class=WebSocketHandler)
|
||||
server.serve_forever()
|
||||
|
||||
More examples can be found in the ``examples`` directory. Hopefully more
|
||||
documentation will be available soon.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
The easiest way to install gevent-websocket is directly from PyPi_ using pip or
|
||||
setuptools by running the commands below::
|
||||
|
||||
$ pip install gevent-websocket
|
||||
|
||||
|
||||
Gunicorn Worker
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
Using Gunicorn it is even more easy to start a server. Only the
|
||||
`websocket_app` from the previous example is required to start the server.
|
||||
Start Gunicorn using the following command and worker class to enable WebSocket
|
||||
funtionality for the application.
|
||||
|
||||
::
|
||||
|
||||
gunicorn -k "geventwebsocket.gunicorn.workers.GeventWebSocketWorker" wsgi:websocket_app
|
||||
|
||||
Performance
|
||||
^^^^^^^^^^^
|
||||
|
||||
`gevent-websocket`_ is pretty fast, but can be accelerated further by
|
||||
installing `wsaccel <https://github.com/methane/wsaccel>`_ and `ujson` or `simplejson`::
|
||||
|
||||
$ pip install wsaccel ujson
|
||||
|
||||
`gevent-websocket`_ automatically detects ``wsaccell`` and uses the Cython
|
||||
implementation for UTF8 validation and later also frame masking and
|
||||
demasking.
|
||||
|
||||
Get in touch
|
||||
^^^^^^^^^^^^
|
||||
|
||||
Get in touch on IRC #gevent on Freenode or on the Gevent `mailinglist
|
||||
<https://groups.google.com/forum/#!forum/gevent>`_. Issues can be created
|
||||
on `Bitbucket <https://bitbucket.org/Jeffrey/gevent-websocket/issues?status=new&status=open>`_.
|
||||
|
||||
.. _WAMP: http://www.wamp.ws
|
||||
.. _gevent-websocket: http://www.bitbucket.org/Jeffrey/gevent-websocket/
|
||||
.. _gevent: http://www.gevent.org/
|
||||
.. _Jeffrey Gelens: http://www.gelens.org/
|
||||
.. _PyPi: http://pypi.python.org/pypi/gevent-websocket/
|
||||
.. _repository: http://www.bitbucket.org/Jeffrey/gevent-websocket/
|
||||
.. _RFC6455: http://datatracker.ietf.org/doc/rfc6455/?include_text=1
|
||||
|
||||
Platform: UNKNOWN
|
||||
Classifier: Environment :: Web Environment
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: License :: OSI Approved :: Apache Software License
|
||||
Classifier: Operating System :: MacOS :: MacOS X
|
||||
Classifier: Operating System :: POSIX
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 2
|
||||
Classifier: Programming Language :: Python :: 2.7
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Programming Language :: Python :: 3.5
|
||||
Classifier: Topic :: Internet
|
||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||
@@ -0,0 +1 @@
|
||||
pip
|
||||
@@ -0,0 +1,135 @@
|
||||
Metadata-Version: 2.0
|
||||
Name: gevent-websocket
|
||||
Version: 0.10.1
|
||||
Summary: Websocket handler for the gevent pywsgi server, a Python network library
|
||||
Home-page: https://www.gitlab.com/noppo/gevent-websocket
|
||||
Author: Jeffrey Gelens
|
||||
Author-email: jeffrey@noppo.pro
|
||||
License: Copyright 2011-2017 Jeffrey Gelens <jeffrey@noppo.pro>
|
||||
Requires-Dist: gevent
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
Download-URL: https://www.gitlab.com/noppo/gevent-websocket
|
||||
Description: ================
|
||||
gevent-websocket
|
||||
================
|
||||
|
||||
`gevent-websocket`_ is a WebSocket library for the gevent_ networking library.
|
||||
|
||||
Features include:
|
||||
|
||||
- Integration on both socket level or using an abstract interface.
|
||||
- RPC and PubSub framework using `WAMP`_ (WebSocket Application
|
||||
Messaging Protocol).
|
||||
- Easily extendible using a simple WebSocket protocol plugin API
|
||||
|
||||
|
||||
::
|
||||
|
||||
from geventwebsocket import WebSocketServer, WebSocketApplication, Resource
|
||||
|
||||
class EchoApplication(WebSocketApplication):
|
||||
def on_open(self):
|
||||
print "Connection opened"
|
||||
|
||||
def on_message(self, message):
|
||||
self.ws.send(message)
|
||||
|
||||
def on_close(self, reason):
|
||||
print reason
|
||||
|
||||
WebSocketServer(
|
||||
('', 8000),
|
||||
Resource({'/': EchoApplication})
|
||||
).serve_forever()
|
||||
|
||||
or a low level implementation::
|
||||
|
||||
from gevent import pywsgi
|
||||
from geventwebsocket.handler import WebSocketHandler
|
||||
|
||||
def websocket_app(environ, start_response):
|
||||
if environ["PATH_INFO"] == '/echo':
|
||||
ws = environ["wsgi.websocket"]
|
||||
message = ws.receive()
|
||||
ws.send(message)
|
||||
|
||||
server = pywsgi.WSGIServer(("", 8000), websocket_app,
|
||||
handler_class=WebSocketHandler)
|
||||
server.serve_forever()
|
||||
|
||||
More examples can be found in the ``examples`` directory. Hopefully more
|
||||
documentation will be available soon.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
The easiest way to install gevent-websocket is directly from PyPi_ using pip or
|
||||
setuptools by running the commands below::
|
||||
|
||||
$ pip install gevent-websocket
|
||||
|
||||
|
||||
Gunicorn Worker
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
Using Gunicorn it is even more easy to start a server. Only the
|
||||
`websocket_app` from the previous example is required to start the server.
|
||||
Start Gunicorn using the following command and worker class to enable WebSocket
|
||||
funtionality for the application.
|
||||
|
||||
::
|
||||
|
||||
gunicorn -k "geventwebsocket.gunicorn.workers.GeventWebSocketWorker" wsgi:websocket_app
|
||||
|
||||
Performance
|
||||
^^^^^^^^^^^
|
||||
|
||||
`gevent-websocket`_ is pretty fast, but can be accelerated further by
|
||||
installing `wsaccel <https://github.com/methane/wsaccel>`_ and `ujson` or `simplejson`::
|
||||
|
||||
$ pip install wsaccel ujson
|
||||
|
||||
`gevent-websocket`_ automatically detects ``wsaccell`` and uses the Cython
|
||||
implementation for UTF8 validation and later also frame masking and
|
||||
demasking.
|
||||
|
||||
Get in touch
|
||||
^^^^^^^^^^^^
|
||||
|
||||
Get in touch on IRC #gevent on Freenode or on the Gevent `mailinglist
|
||||
<https://groups.google.com/forum/#!forum/gevent>`_. Issues can be created
|
||||
on `Bitbucket <https://bitbucket.org/Jeffrey/gevent-websocket/issues?status=new&status=open>`_.
|
||||
|
||||
.. _WAMP: http://www.wamp.ws
|
||||
.. _gevent-websocket: http://www.bitbucket.org/Jeffrey/gevent-websocket/
|
||||
.. _gevent: http://www.gevent.org/
|
||||
.. _Jeffrey Gelens: http://www.gelens.org/
|
||||
.. _PyPi: http://pypi.python.org/pypi/gevent-websocket/
|
||||
.. _repository: http://www.bitbucket.org/Jeffrey/gevent-websocket/
|
||||
.. _RFC6455: http://datatracker.ietf.org/doc/rfc6455/?include_text=1
|
||||
|
||||
Platform: UNKNOWN
|
||||
Classifier: Environment :: Web Environment
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: License :: OSI Approved :: Apache Software License
|
||||
Classifier: Operating System :: MacOS :: MacOS X
|
||||
Classifier: Operating System :: POSIX
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 2
|
||||
Classifier: Programming Language :: Python :: 2.7
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Programming Language :: Python :: 3.5
|
||||
Classifier: Topic :: Internet
|
||||
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
||||
@@ -0,0 +1,37 @@
|
||||
gevent_websocket-0.10.1.dist-info/DESCRIPTION.rst,sha256=nQ4OV8W81ymEywPv_TiZa9VGAdZdAwjEd7Uoco4Zp7Y,4962
|
||||
gevent_websocket-0.10.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
|
||||
gevent_websocket-0.10.1.dist-info/METADATA,sha256=t93dKgVFczXCm7oEg4rL1-cnOITw74qtUdUjoa1j0OM,5304
|
||||
gevent_websocket-0.10.1.dist-info/RECORD,,
|
||||
gevent_websocket-0.10.1.dist-info/WHEEL,sha256=rNo05PbNqwnXiIHFsYm0m22u4Zm6YJtugFG2THx4w3g,92
|
||||
gevent_websocket-0.10.1.dist-info/metadata.json,sha256=XExyO_kAjuQqtilP6BOWLJPaezTVODL9OIwVIqrfQiM,582
|
||||
gevent_websocket-0.10.1.dist-info/top_level.txt,sha256=WTgLQQOgA-8n5eqLKVfJHX0yjqCBUtmq8kJYjB3ppXQ,16
|
||||
geventwebsocket/__init__.py,sha256=_HoAl2Lk6JpYlYQerqITTmtJW4PEb5Gc_LDWGT07R8s,441
|
||||
geventwebsocket/__pycache__/__init__.cpython-312.pyc,,
|
||||
geventwebsocket/__pycache__/_compat.cpython-312.pyc,,
|
||||
geventwebsocket/__pycache__/exceptions.cpython-312.pyc,,
|
||||
geventwebsocket/__pycache__/handler.cpython-312.pyc,,
|
||||
geventwebsocket/__pycache__/logging.cpython-312.pyc,,
|
||||
geventwebsocket/__pycache__/resource.cpython-312.pyc,,
|
||||
geventwebsocket/__pycache__/server.cpython-312.pyc,,
|
||||
geventwebsocket/__pycache__/utf8validator.cpython-312.pyc,,
|
||||
geventwebsocket/__pycache__/utils.cpython-312.pyc,,
|
||||
geventwebsocket/__pycache__/websocket.cpython-312.pyc,,
|
||||
geventwebsocket/_compat.py,sha256=cR7TQxMR4C62dQG4bZm7yoq3Yh55Z3Bwp50WyITifEk,484
|
||||
geventwebsocket/exceptions.py,sha256=3ed_NuUWYQcFENkoPMLLKnSiEf7VSfOt6NHpp8QfHxo,378
|
||||
geventwebsocket/gunicorn/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
geventwebsocket/gunicorn/__pycache__/__init__.cpython-312.pyc,,
|
||||
geventwebsocket/gunicorn/__pycache__/workers.cpython-312.pyc,,
|
||||
geventwebsocket/gunicorn/workers.py,sha256=wRH20VBU_lU6wpEW3jCzbuj0RItvVyQIugjxVAdDW-c,196
|
||||
geventwebsocket/handler.py,sha256=rpzl4PMHJemjWXmtIca99GZI1oRi0uok64qQe4cTKvs,9579
|
||||
geventwebsocket/logging.py,sha256=txUUovb6xlxBgEihgFzxJw7X9WG3BNiQ1Do-8N6itCI,875
|
||||
geventwebsocket/protocols/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
||||
geventwebsocket/protocols/__pycache__/__init__.cpython-312.pyc,,
|
||||
geventwebsocket/protocols/__pycache__/base.cpython-312.pyc,,
|
||||
geventwebsocket/protocols/__pycache__/wamp.cpython-312.pyc,,
|
||||
geventwebsocket/protocols/base.py,sha256=bqLQ8QJRm09royTznjau1ZC70swCoGnDtdrFr8poBNg,736
|
||||
geventwebsocket/protocols/wamp.py,sha256=3VIuxoXNTvZ4TeSwmRwPzmxiMx2LEdq0tW8vU3THIC4,6745
|
||||
geventwebsocket/resource.py,sha256=ySZXPNhtIzDZOUF8kC961FaVoYbcKipumGTYIuj_BYY,3077
|
||||
geventwebsocket/server.py,sha256=_Tu3cZh4W_PxOWF0wlYXmOOVmJ-_eyu6FaLJv_PEh6o,950
|
||||
geventwebsocket/utf8validator.py,sha256=BIBKbKaRso_Lo2-bVIE83GUfn6sfYqCV7lOicX1kq_U,10060
|
||||
geventwebsocket/utils.py,sha256=VYbrpapmq9B79kagK_tgTmLjV3U-Axwiu_dT0-6M14o,1185
|
||||
geventwebsocket/websocket.py,sha256=6-J2rhxGqVyF3dxweDkw8WPqyLfpicsulh0JqWDa6rI,16046
|
||||
@@ -0,0 +1,5 @@
|
||||
Wheel-Version: 1.0
|
||||
Generator: bdist_wheel (0.29.0)
|
||||
Root-Is-Purelib: true
|
||||
Tag: py3-none-any
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"extensions": {"python.details": {"contacts": [{"email": "jeffrey@noppo.pro", "name": "Jeffrey Gelens", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://www.gitlab.com/noppo/gevent-websocket"}}}, "extras": [], "generator": "bdist_wheel (0.29.0)", "license": "Copyright 2011-2017 Jeffrey Gelens <jeffrey@noppo.pro>", "metadata_version": "2.0", "name": "gevent-websocket", "run_requires": [{"requires": ["gevent"]}], "summary": "Websocket handler for the gevent pywsgi server, a Python network library", "version": "0.10.1"}
|
||||
@@ -0,0 +1 @@
|
||||
geventwebsocket
|
||||
Reference in New Issue
Block a user