Skip to main content
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

Release files for gevent-websocket 0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gevent-websocket 0.10
File Size Uploaded
gevent-websocket-0.10.tar.gz 18.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gevent-websocket 0.10
File Interpreter ABI Platform
gevent_websocket-0.10-py3-none-any.whl Python 3 none any Details

Total release size: 41.3 kB

Release files / gevent-websocket-0.10.tar.gz

Download URL gevent-websocket-0.10.tar.gz
Size 18.4 kB
Tags Source
SHA-256 checksum
How to use checksums
fa84c02207f0a55f6352f50b13906e2ba668dcc4a73740f9ac87f430ed73ef50
BLAKE2b-256 checksum
How to use checksums
a4fb1daa581853e2e8735369bf352ed3625b510cdf4a03a2d8ed41abfa601a11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / gevent_websocket-0.10-py3-none-any.whl

Download URL gevent_websocket-0.10-py3-none-any.whl
Size 23.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2f6a923a1db45a271f5dddb2028ce5998ad7e9077ee44c0fe79e9d360a5696a1
BLAKE2b-256 checksum
How to use checksums
eab985f735bfc49b2be0878323e502150259763167ef6451dd625b046b126f41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.10.1

2 release files

This release

0.10 This release

2 release files

0.9.5

1 release file

0.9.4

1 release file

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9

2 release files

0.3.6

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page