Skip to main content
websockets

rtd pypi-v pypi-pyversions pypi-l pypi-wheel circleci codecov

What is websockets?

websockets is a library for building WebSocket servers and clients in Python with a focus on correctness and simplicity.

Built on top of asyncio, Python’s standard asynchronous I/O framework, it provides an elegant coroutine-based API.

Documentation is available on Read the Docs.

Here’s how a client sends and receives messages:

#!/usr/bin/env python

import asyncio
import websockets

async def hello(uri):
    async with websockets.connect(uri) as websocket:
        await websocket.send("Hello world!")
        await websocket.recv()

asyncio.get_event_loop().run_until_complete(
    hello('ws://localhost:8765'))

And here’s an echo server:

#!/usr/bin/env python

import asyncio
import websockets

async def echo(websocket, path):
    async for message in websocket:
        await websocket.send(message)

asyncio.get_event_loop().run_until_complete(
    websockets.serve(echo, 'localhost', 8765))
asyncio.get_event_loop().run_forever()

Does that look good?

Get started with the tutorial!

Why should I use websockets?

The development of websockets is shaped by four principles:

  1. Simplicity: all you need to understand is msg = await ws.recv() and await ws.send(msg); websockets takes care of managing connections so you can focus on your application.

  2. Robustness: websockets is built for production; for example it was the only library to handle backpressure correctly before the issue became widely known in the Python community.

  3. Quality: websockets is heavily tested. Continuous integration fails under 100% branch coverage. Also it passes the industry-standard Autobahn Testsuite.

  4. 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.

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.6.

What else?

Bug reports, patches and suggestions are welcome!

To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.

For anything else, please open an issue or send a pull request.

Participants must uphold the Contributor Covenant code of conduct.

websockets is released under the BSD license.

Release files for websockets 8.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for websockets 8.0.1
File Size Uploaded
websockets-8.0.1.tar.gz 57.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for websockets 8.0.1
File
websockets-8.0.1-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details
websockets-8.0.1-cp37-cp37m-win32.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-32 Details
websockets-8.0.1-cp37-cp37m-manylinux1_x86_64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64 Details
websockets-8.0.1-cp37-cp37m-manylinux1_i686.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32 Details
websockets-8.0.1-cp37-cp37m-macosx_10_6_intel.whl CPython 3.7 CPython 3.7 pymalloc macOS 10.6+ Intel (x86-64, i386) Details
websockets-8.0.1-cp36-cp36m-win_amd64.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-64 Details
websockets-8.0.1-cp36-cp36m-win32.whl CPython 3.6 CPython 3.6 pymalloc Windows x86-32 Details
websockets-8.0.1-cp36-cp36m-manylinux1_x86_64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64 Details
websockets-8.0.1-cp36-cp36m-manylinux1_i686.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-32 Details
websockets-8.0.1-cp36-cp36m-macosx_10_6_intel.whl CPython 3.6 CPython 3.6 pymalloc macOS 10.6+ Intel (x86-64, i386) Details

Total release size: 739.8 kB

Release files / websockets-8.0.1.tar.gz

Download URL websockets-8.0.1.tar.gz
Size 57.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d3bb8f0b1310b41b727c890353e058b335d1eec18995a82a108ca4784d0e3f94
BLAKE2b-256 checksum
How to use checksums
dc8111cbf0c9b926ae879deb3e0d39cdd04699378b11890aa8cf24b46549a707
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

Release files / websockets-8.0.1-cp37-cp37m-win_amd64.whl

Download URL websockets-8.0.1-cp37-cp37m-win_amd64.whl
Size 65.7 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
515fc486e026641a416f04d4b24768d39e965628caaf93bb2418013b09333616
BLAKE2b-256 checksum
How to use checksums
f5bbdea38d95f8ee542ef49b0741e99738cc2d4e90c662f9d0c0d780849e40ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

Release files / websockets-8.0.1-cp37-cp37m-win32.whl

Download URL websockets-8.0.1-cp37-cp37m-win32.whl
Size 65.1 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
4c1116f24778bcd9369b852a862156f4891cdecdc4d722e47fd872ca75d7601d
BLAKE2b-256 checksum
How to use checksums
6a5f15876278a369c04ee2874cc375cd9f2b235e8822026fd8bf13249e53db25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

Release files / websockets-8.0.1-cp37-cp37m-manylinux1_x86_64.whl

Download URL websockets-8.0.1-cp37-cp37m-manylinux1_x86_64.whl
Size 72.6 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
fc6087062e70f8c474a9902296bdc5a071ba5c0e80a8b6072172c8e9ea860f73
BLAKE2b-256 checksum
How to use checksums
69bfcb9f9a33a17e65a540d775ada84c7973d68f46dfeac4676e424dded91155
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.1

Release files / websockets-8.0.1-cp37-cp37m-manylinux1_i686.whl

Download URL websockets-8.0.1-cp37-cp37m-manylinux1_i686.whl
Size 72.0 kB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
f44ac3eb78c594e82a327be792748efd87f0fc1bdab47b2ca34545a0085b5f18
BLAKE2b-256 checksum
How to use checksums
880b0a15d4edbcc23b49c145fea83e9bf3e7b40e38c83c72c4be9d2470d388f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.1

Release files / websockets-8.0.1-cp37-cp37m-macosx_10_6_intel.whl

Download URL websockets-8.0.1-cp37-cp37m-macosx_10_6_intel.whl
Size 65.8 kB
Tags CPython 3.7 CPython 3.7 pymalloc macOS 10.6+ Intel (x86-64, i386)
SHA-256 checksum
How to use checksums
6f4fa5926c92195e3cebe938ba1e2609ba6640da7fe4a444c65c1b66ed2600a8
BLAKE2b-256 checksum
How to use checksums
9a6c82f3e9968a7e021db63920ffc4639e40783b66daa6975e1ed69b14738bb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2

Release files / websockets-8.0.1-cp36-cp36m-win_amd64.whl

Download URL websockets-8.0.1-cp36-cp36m-win_amd64.whl
Size 65.7 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
265b7fd10c38559a857326ebe1bf5dc45669fd116f9be7e494d2341a1ae26744
BLAKE2b-256 checksum
How to use checksums
7c37160c5ef9138fb5265b38601676196b9bbd26e4cabb1afcafda681081794a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

Release files / websockets-8.0.1-cp36-cp36m-win32.whl

Download URL websockets-8.0.1-cp36-cp36m-win32.whl
Size 65.1 kB
Tags CPython 3.6 CPython 3.6 pymalloc Windows x86-32
SHA-256 checksum
How to use checksums
8495667dbab2554b8b6cb43538d5caf6cc309ba6b7eff005424a2673bfdb1f6e
BLAKE2b-256 checksum
How to use checksums
15aee960803d464860aa43f85d224f19876aa97aec5fd1c1cbf4c95a1624924d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

Release files / websockets-8.0.1-cp36-cp36m-manylinux1_x86_64.whl

Download URL websockets-8.0.1-cp36-cp36m-manylinux1_x86_64.whl
Size 72.6 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-64
SHA-256 checksum
How to use checksums
94febad341c185c90fea741128eff68813e68b530750ac2de8c307f85ce38265
BLAKE2b-256 checksum
How to use checksums
c1d2bf72435a7d56f94b57efdeae26c76bf0d16f409fd44ff595da745c3fbefd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.1

Release files / websockets-8.0.1-cp36-cp36m-manylinux1_i686.whl

Download URL websockets-8.0.1-cp36-cp36m-manylinux1_i686.whl
Size 72.0 kB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.5+ x86-32
SHA-256 checksum
How to use checksums
e61e77ef3cae42b9287c571c5da22b811499b32e68aa4f66db2db83234cd04ab
BLAKE2b-256 checksum
How to use checksums
46139f2c6ea45e0b33d6cd1aa7f360b5b83c00f103994610feb3d60d823af7a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.1

Release files / websockets-8.0.1-cp36-cp36m-macosx_10_6_intel.whl

Download URL websockets-8.0.1-cp36-cp36m-macosx_10_6_intel.whl
Size 65.8 kB
Tags CPython 3.6 CPython 3.6 pymalloc macOS 10.6+ Intel (x86-64, i386)
SHA-256 checksum
How to use checksums
10cec0881bf992c0c7d67ebafd8d816ef8d498e6cb748b81a328023688b6b66d
BLAKE2b-256 checksum
How to use checksums
c587a62ea9b41034455f4fddc93e83799b2e43b39ca789430245381757fd6c80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.2

Release history Release notifications | RSS feed

17.1

148 release files

17.0

108 release files

16.1

109 release files

16.0

61 release files

15.0

69 release files

14.2

69 release files

14.1

69 release files

14.0

69 release files

13.1

86 release files

13.0

86 release files

12.0

72 release files

11.0

70 release files

10.4

69 release files

10.3

48 release files

10.2

48 release files

10.1

48 release files

10.0

25 release files

9.1

33 release files

9.0.2

33 release files

9.0

22 release files

8.1

22 release files

8.0.2

11 release files

This release

8.0.1 This release

11 release files

8.0

11 release files

7.0

21 release files

6.0

21 release files

5.0.1

13 release files

5.0

16 release files

4.0

12 release files

3.4

20 release files

3.3

2 release files

3.2

2 release files

3.1

1 release file

3.0

2 release files

2.7

2 release files

2.6

2 release files

2.5

2 release files

2.4

2 release files

2.3

2 release files

2.2

1 release file

2.1

1 release file

2.0

2 release files

1.0

2 release files

0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page