blob: 5d9a877705cd687154abeffcb6f8f64666bf993d [file] [log] [blame] [view]
# pywebsocket #
## What is it? ##
The pywebsocket project aims to provide a [WebSocket](http://tools.ietf.org/html/rfc6455) standalone server and a WebSocket extension for [Apache HTTP Server](http://httpd.apache.org/), mod\_pywebsocket.
pywebsocket is intended for **testing** or **experimental** purposes. To run with Apache HTTP Server, [mod\_python](http://www.modpython.org/) is required. For wss, mod\_ssl is also required.
pywebsocket supports RFC 6455 (and [some legacy protocols](WebSocketProtocolSpec.md)) and the following extension.
* [WebSocket Per-message Compression (permessage-deflate)](http://tools.ietf.org/html/draft-ietf-hybi-permessage-compression-17)
## How can I use it? ##
To try mod\_pywebsocket, please do:
```
svn checkout http://pywebsocket.googlecode.com/svn/trunk/ pywebsocket-read-only
```
and follow the instructions in [pywebsocket-read-only/src/README](http://code.google.com/p/pywebsocket/source/browse/trunk/src/README).
To run mod\_pywebsocket as an Apache HTTP Server extension module, please read comments in
[pywebsocket-read-only/mod\_pywebsocket/\_\_init\_\_.py](http://code.google.com/p/pywebsocket/source/browse/trunk/src/mod_pywebsocket/__init__.py).
To run mod\_pywebsocket as a standalone server (i.e., not using Apache HTTP Server), please
read comments in
[pywebsocket-read-only/mod\_pywebsocket/standalone.py](http://code.google.com/p/pywebsocket/source/browse/trunk/src/mod_pywebsocket/standalone.py).
See TestingYourWebSocketImplementation for quick tutorial for testing your WebSocket implementation using pywebsocket.
## Examples ##
The following is a list of **third party** examples.
* http://code.google.com/p/websocket-sample/
## Questions or suggestions? ##
We have a list for users and developers. Please join http://groups.google.com/group/pywebsocket.
## For developers who intend to contribute to pywebsocket ##
### Legal ###
You must complete the [Individual Contributor License Agreement](http://code.google.com/legal/individual-cla-v1.0.html). You can do this online, and it only takes a minute. If you are contributing on behalf of a corporation, you must fill out the [Corporate Contributor License Agreement](http://code.google.com/legal/corporate-cla-v1.0.html) and send it to us as described on that page.
### Nuts and bolts ###
Basically, we apply PEP-8 coding style guide http://www.python.org/dev/peps/pep-0008/ to Python code in this project and in some case we follow some rules from Google Python style guide http://google-styleguide.googlecode.com/svn/trunk/pyguide.html if they don't conflict with PEP-8.
We use the shared Rietveld site hosted by Google AppEngine http://codereview.appspot.com for reviewing code. There's a list for watching review in Google Groups http://groups.google.com/group/pywebsocket-reviews and one for watching changes on bug tracker http://groups.google.com/group/pywebsocket-bugs.
See also WebSocketProtocolSpec, a note for developer about WebSocket protocol design