Performance: memory use is configurable. An extension written in C
accelerates expensive operations. It’s pre-compiled for Linux, macOS and
Windows and packaged in the wheel format for each system and Python version.

Documentation is a first class concern in the project. Head over to Read the
Docs and see for yourself.

Professional support is available if you — or your company — are so inclined.
Get in touch.

(If you contribute to websockets and would like to become an official
support provider, let me know.)

Why shouldn’t I use websockets?

If you prefer callbacks over coroutines: websockets was created to
provide the best coroutine-based API to manage WebSocket connections in
Python. Pick another library for a callback-based API.

If you’re looking for a mixed HTTP / WebSocket library: websockets aims
at being an excellent implementation of RFC 6455: The WebSocket Protocol
and RFC 7692: Compression Extensions for WebSocket. Its support for HTTP
is minimal — just enough for a HTTP health check.

If you want to use Python 2: websockets builds upon asyncio which
only works on Python 3. websockets requires Python ≥ 3.4.

What else?

Bug reports, patches and suggestions welcome! Just open an issue or send a
pull request.