loongson/pypi/: websockets-10.0 metadata and description
An implementation of the WebSocket Protocol (RFC 6455 & 7692)
author | Aymeric Augustin |
author_email | aymeric.augustin@m4x.org |
classifiers |
|
license | BSD |
platform |
|
project_urls |
|
requires_python | >=3.7 |
Because this project isn't in the mirror_whitelist
,
no releases from root/pypi are included.
File | Tox results | History |
---|---|---|
websockets-10.0-cp36-cp36m-linux_loongarch64.whl
|
|
|
websockets-10.0-cp37-cp37m-linux_loongarch64.whl
|
|
|
websockets-10.0-cp38-cp38-linux_loongarch64.whl
|
|
|
websockets-10.0-cp39-cp39-linux_loongarch64.whl
|
|
|
websockets-10.0.tar.gz
|
|
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 from websockets import connect async def hello(uri): async with connect(uri) as websocket: await websocket.send("Hello world!") await websocket.recv() asyncio.run(hello("ws://localhost:8765"))
And here’s an echo server:
#!/usr/bin/env python import asyncio from websockets import serve async def echo(websocket, path): async for message in websocket: await websocket.send(message) async def main(): async with serve(echo, "localhost", 8765): await asyncio.Future() # run forever asyncio.run(main())
Does that look good?
Why should I use websockets?
The development of websockets is shaped by four principles:
- 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.
- 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.
- Quality: websockets is heavily tested. Continuous integration fails under 100% branch coverage. Also it passes the industry-standard Autobahn Testsuite.
- Performance: memory usage 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.7.
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.