API reference - websockets 11.0 documentation
Description: Features: Check which implementations support which features and known limitations. Features. asyncio: This is the default implementation. It’s ideal for servers that handle many clients concurrent...

Hide navigation sidebar
Hide table of contents sidebar
Back to top
Toggle table of contents sidebar

# API reference

## Features

Check which implementations support which features and known limitations.

- Features

## `asyncio`

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

- Server (`asyncio`)
- Client (`asyncio`)

## `threading`

This alternative implementation can be a good choice for clients.

- Server (`threading`)
- Client (`threading`)

## Sans-I/O

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

- Server (Sans-I/O)
- Client (Sans-I/O)

## Extensions

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

- Extensions

## Shared

These low-level APIs are shared by all implementations.

- Data structures
- Exceptions
- Types

## 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?