API reference#

Features#

Check which implementations support which features and known limitations.

asyncio#

This is the default implementation. It’s ideal for servers that handle many clients concurrently.

threading#

This alternative implementation can be a good choice for clients.

Sans-I/O#

This layer is designed for integrating in third-party libraries, typically application servers.

Extensions#

The Per-Message Deflate extension is built in. You may also define custom extensions.

Shared#

These low-level APIs are shared by all implementations.

API stability#

Public APIs documented in this API reference are subject to the backwards-compatibility policy.

Anything that isn’t listed in the API reference is a private API. There’s no guarantees of behavior or backwards-compatibility for private APIs.

Convenience imports#

For convenience, many public APIs can be imported directly from the websockets package.

Convenience imports are incompatible with some development tools.

Specifically, static code analysis tools don’t understand them. This breaks auto-completion and contextual documentation in IDEs, type checking with mypy, etc.

If you’re using such tools, stick to the full import paths, as explained in this FAQ: Why does my IDE fail to show documentation for websockets APIs?