./www/py-websockets, Implementation of the WebSocket Protocol (RFC 6455)

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 8.1, Package name: py37-websockets-8.1, Maintainer: pkgsrc-users

websockets is a library for developing WebSocket servers and clients in
Python. It implements RFC 6455 with a focus on correctness and simplicity.
It passes the Autobahn Testsuite.

Built on top of Python's asynchronous I/O support introduced in PEP 3156,
it provides an API based on coroutines, making it easy to write highly
concurrent applications.


Required to run:
[devel/py-setuptools] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: 4695741b2ceb70e29ee33b7252814a09078975e4
RMD160: 692203dc40eaade9a43b8506749c09fbdbe8ec6a
Filesize: 57.494 KB

Version history: (Expand)


CVS history: (Expand)


   2019-11-26 20:08:55 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-websockets: updated to 8.1

8.1
Added compatibility with Python 3.8.

8.0.2
Restored the ability to pass a socket with the sock parameter of \ 
:func:`~server.serve`.
Removed an incorrect assertion when a connection drops.

8.0.1
Restored the ability to import WebSocketProtocolError from websockets.

8.0

Warning
Version 8.0 drops compatibility with Python 3.4 and 3.5.

Note
Version 8.0 expects process_request to be a coroutine.

Previously, it could be a function or a coroutine.

If you're passing a process_request argument to :func:`~server.serve` or \ 
:class:`~server.WebSocketServerProtocol`, or if you're overriding \ 
:meth:`~protocol.WebSocketServerProtocol.process_request` in a subclass, define \ 
it with async def instead of def.

For backwards compatibility, functions are still mostly supported, but mixing \ 
functions and coroutines won't work in some inheritance scenarios.

Note
Version 8.0 changes the behavior of the max_queue parameter.

If you were setting max_queue=0 to make the queue of incoming messages \ 
unbounded, change it to max_queue=None.

Note
Version 8.0 deprecates the host , port , and secure attributes of \ 
:class:`~protocol.WebSocketCommonProtocol`.

Use :attr:`~protocol.WebSocketCommonProtocol.local_address` in servers and \ 
:attr:`~protocol.WebSocketCommonProtocol.remote_address` in clients instead of \ 
host and port.

Note
Version 8.0 renames the WebSocketProtocolError exception to :exc:`ProtocolError` .

A WebSocketProtocolError alias provides backwards compatibility.

Note
Version 8.0 adds the reason phrase to the return type of the low-level API \ 
:func:`~http.read_response` .

Also:
:meth:`~protocol.WebSocketCommonProtocol.send`, \ 
:meth:`~protocol.WebSocketCommonProtocol.ping`, and \ 
:meth:`~protocol.WebSocketCommonProtocol.pong` support bytes-like types \ 
:class:`bytearray` and :class:`memoryview` in addition to :class:`bytes`.
Added :exc:`~exceptions.ConnectionClosedOK` and \ 
:exc:`~exceptions.ConnectionClosedError` subclasses of \ 
:exc:`~exceptions.ConnectionClosed` to tell apart normal connection termination \ 
from errors.
Added :func:`~auth.basic_auth_protocol_factory` to enforce HTTP Basic Auth on \ 
the server side.
:func:`~client.connect` handles redirects from the server during the handshake.
:func:`~client.connect` supports overriding host and port.
Added :func:`~client.unix_connect` for connecting to Unix sockets.
Improved support for sending fragmented messages by accepting asynchronous \ 
iterators in :meth:`~protocol.WebSocketCommonProtocol.send`.
Prevented spurious log messages about :exc:`~exceptions.ConnectionClosed` \ 
exceptions in keepalive ping task. If you were using ping_timeout=None as a \ 
workaround, you can remove it.
Changed :meth:`WebSocketServer.close() <server.WebSocketServer.close>` to \ 
perform a proper closing handshake instead of failing the connection.
Avoided a crash when a extra_headers callable returns None.
Improved error messages when HTTP parsing fails.
Enabled readline in the interactive client.
Added type hints (PEP 484).
Added a FAQ to the documentation.
Added documentation for extensions.
Documented how to optimize memory usage.
Improved API documentation.
   2018-11-06 15:31:48 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-websockets: updated to 7.0

7.0:
websockets sends Ping frames at regular intervals and closes the connection if \ 
it doesn't receive a matching Pong frame. See \ 
:class:~protocol.WebSocketCommonProtocol for details.
Added process_request and select_subprotocol arguments to :func:~server.serve() \ 
and :class:~server.WebSocketServerProtocol to customize \ 
:meth:~server.WebSocketServerProtocol.process_request and \ 
:meth:~server.WebSocketServerProtocol.select_subprotocol without subclassing \ 
:class:~server.WebSocketServerProtocol
Added support for sending fragmented messages.
Added the :meth:~protocol.WebSocketCommonProtocol.wait_closed method to protocols.
Added an interactive client: python -m websockets <uri>.
Changed the origins argument to represent the lack of an origin with None rather \ 
than ''.
Fixed a data loss bug in :meth:~protocol.WebSocketCommonProtocol.recv: canceling \ 
it at the wrong time could result in messages being dropped.
Improved handling of multiple HTTP headers with the same name.
Improved error messages when a required HTTP header is missing.
   2018-09-07 13:26:42 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-websockets: updated to 6.0

6.0:

Warning

Version 6.0 introduces the :class:~http.Headers class for managing HTTP headers \ 
and changes several public APIs:

:meth:~server.WebSocketServerProtocol.process_request now receives a \ 
:class:~http.Headers instead of a :class:~http.client.HTTPMessage in the \ 
request_headers argument.
The :attr:~protocol.WebSocketCommonProtocol.request_headers and \ 
:attr:~protocol.WebSocketCommonProtocol.response_headers attributes of \ 
:class:~protocol.WebSocketCommonProtocol are :class:~http.Headers instead of \ 
:class:~http.client.HTTPMessage.
The :attr:~protocol.WebSocketCommonProtocol.raw_request_headers and \ 
:attr:~protocol.WebSocketCommonProtocol.raw_response_headers attributes of \ 
:class:~protocol.WebSocketCommonProtocol are removed. Use \ 
:meth:~http.Headers.raw_items instead.
Functions defined in the :mod:~handshake module now receive :class:~http.Headers \ 
in argument instead of get_header or set_header functions. This affects \ 
libraries that rely on low-level APIs.
Functions defined in the :mod:~http module now return HTTP headers as \ 
:class:~http.Headers instead of lists of (name, value) pairs.
Note that :class:~http.Headers and :class:~http.client.HTTPMessage provide \ 
similar APIs.

Also:
Added compatibility with Python 3.7.
   2018-07-06 10:04:22 by Adam Ciarcinski | Files touched by this commit (1)
Log message:
Fix building with Python 3.7
   2018-06-18 12:46:26 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-websockets: updated to 5.0.1

5.0.1
Version 5.0 fixes a security issue introduced in version 4.0.

websockets 4.0 was vulnerable to denial of service by memory exhaustion because \ 
it didn't enforce max_size when decompressing compressed messages.

Also:
:func:~client.connect() performs HTTP Basic Auth when the URI contains credentials.
Iterating on incoming messages no longer raises an exception when the connection \ 
terminates with code 1001 (going away).
A plain HTTP request now receives a 426 Upgrade Required response and doesn't \ 
log a stack trace.
:func:~server.unix_serve can be used as an asynchronous context manager on \ 
Python ≥ 3.5.1.
Added :meth:~protocol.WebSocketCommonProtocol.closed property.
If a :meth:~protocol.WebSocketCommonProtocol.ping doesn't receive a pong, it's \ 
cancelled when the connection is closed.
Reported the cause of :exc:~exceptions.ConnectionClosed exceptions.
Added new examples in the documentation.
Updated documentation with new features from Python 3.6.
Improved several other sections of the documentation.
Fixed missing close code, which caused :exc:TypeError on connection close.
Fixed a race condition in the closing handshake that raised \ 
:exc:~exceptions.InvalidState.
Stopped logging stack traces when the TCP connection dies prematurely.
Prevented writing to a closing TCP connection during unclean shutdowns.
Made connection termination more robust to network congestion.
Prevented processing of incoming frames after failing the connection.
   2017-11-03 12:17:21 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-websockets: updated to 4.0.1

4.0:

Warning: Version 4.0 enables compression with the permessage-deflate extension.
In August 2017, Firefox and Chrome support it, but not Safari and IE.
Compression should improve performance but it increases RAM and CPU use.
If you want to disable compression, add compression=None when calling \ 
:func:`~server.serve()` or :func:`~client.connect()`.

Warning: Version 4.0 removes the ``state_name`` attribute of protocols.
Use protocol.state.name instead of protocol.state_name.

Also:
:class:`~protocol.WebSocketCommonProtocol` instances can be used as asynchronous \ 
iterators on Python ≥ 3.6. They yield incoming messages.
Added :func:`~websockets.server.unix_serve` for listening on Unix sockets.
Added the :attr:`~websockets.server.WebSocketServer.sockets` attribute.
Reorganized and extended documentation.
Aborted connections if they don't close within the configured timeout.
Rewrote connection termination to increase robustness in edge cases.
Stopped leaking pending tasks when :meth:`~asyncio.Task.cancel` is called on a \ 
connection while it's being closed.
Reduced verbosity of "Failing the WebSocket connection" logs.
Allowed extra_headers to override Server and User-Agent headers.
   2017-08-22 10:47:50 by Adam Ciarcinski | Files touched by this commit (4)
Log message:
3.4:
Renamed :func:`~websockets.server.serve()` and \ 
:func:`~websockets.client.connect()`'s klass argument to create_protocol to \ 
reflect that it can also be a callable. For backwards compatibility, klass is \ 
still supported.
:func:`~websockets.server.serve` can be used as an asynchronous context manager \ 
on Python ≥ 3.5.
Added support for customizing handling of incoming connections with \ 
:meth:`~websockets.server.WebSocketServerProtocol.process_request()`.
Made read and write buffer sizes configurable.
Rewrote HTTP handling for simplicity and performance.
Added an optional C extension to speed up low level operations.
An invalid response status code during :func:`~websockets.client.connect` now \ 
raises :class:`~websockets.exceptions.InvalidStatusCode` with a code attribute.
   2017-07-02 00:13:55 by Joerg Sonnenberger | Files touched by this commit (2)
Log message:
Deal with PLIST differences for Python 3.4.