Renamed :func:`~websockets.server.serve()` and :func:`~websockets.client.connect()`'s klass argument to create_protocol to reflect that it can also be a callable. For backwards compatibility, klass is still supported.
:func:`~websockets.server.serve` can be used as an asynchronous context manager on Python ≥ 3.5.
Added support for customizing handling of incoming connections with :meth:`~websockets.server.WebSocketServerProtocol.process_request()`.
Made read and write buffer sizes configurable.
Rewrote HTTP handling for simplicity and performance.
Added an optional C extension to speed up low level operations.
An invalid response status code during :func:`~websockets.client.connect` now raises :class:`~websockets.exceptions.InvalidStatusCode` with a code attribute.
Python. It implements RFC 6455 with a focus on correctness and simplicity.
It passes the Autobahn Testsuite.
Built on top of Python's asynchronous I/O support introduced in PEP 3156,
it provides an API based on coroutines, making it easy to write highly
concurrent applications.