aboutsummaryrefslogtreecommitdiff
blob: 5839cf4564e160c231f7337ccac66119dd9742c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">

<pkgmetadata>
  <maintainer type="person">
    <email>andrewammerlaan@riseup.net</email>
    <name>Andrew Ammerlaan</name>
  </maintainer>
  <longdescription lang="en">
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.
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 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.1.
  </longdescription>
  <upstream>
    <remote-id type="github">aaugustin/websockets</remote-id>
    <remote-id type="pypi">websockets</remote-id>
  </upstream>
</pkgmetadata>