This needs a pile of cleaning up.
It passes the autobahn test suite completely and strictly in both client and server modes and using permessage-deflate.
If wsaccel is installed (optional), then it will be used to speed things up.
If you want to run the compliance tests, go into the compliance directory and then to test client mode, in one shell run the Autobahn test server:
$ wstest -m fuzzingserver -s ws-fuzzingserver.json
And in another shell run the test client:
$ python test_client.py
And to test server mode, run the test server:
$ python test_server.py
And in another shell run the Autobahn test client:
$ wstest -m fuzzingclient -s ws-fuzzingclient.json
This was written using Python 3.5. Python 3.4, 3.5 and 3.6 are being actively tested. PyPy3 will be tested once TravisCI gets it working again. Python 2.x is not supported.