summaryrefslogtreecommitdiff
path: root/PKG-INFO
diff options
context:
space:
mode:
authorAndrej Shadura <andrew.shadura@collabora.co.uk>2020-11-29 10:01:44 +0100
committerAndrej Shadura <andrew.shadura@collabora.co.uk>2020-11-29 10:01:44 +0100
commitbe3d27fffd14040b3ce1578f19c45d713ddd4a06 (patch)
tree568daafd055972cd0898c5f2239c99afc1c3132e /PKG-INFO
parent03301f758f2589dae00ed8515e7b3fd20817ecbd (diff)
parenta05a8cc3ae1646ddc45b36d40bd55a1ce8abb34b (diff)
New upstream version 4.0.0
Diffstat (limited to 'PKG-INFO')
-rw-r--r--PKG-INFO799
1 files changed, 22 insertions, 777 deletions
diff --git a/PKG-INFO b/PKG-INFO
index 36998f2..4c137c5 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,21 +1,29 @@
-Metadata-Version: 1.2
+Metadata-Version: 2.1
Name: h2
-Version: 3.2.0
+Version: 4.0.0
Summary: HTTP/2 State-Machine based protocol implementation
Home-page: https://github.com/python-hyper/hyper-h2
Author: Cory Benfield
Author-email: cory@lukasa.co.uk
License: MIT License
-Project-URL: Documentation, https://python-hyper.org/projects/h2
-Project-URL: Source, https://github.com/python-hyper/hyper-h2
Description: ===============================
hyper-h2: HTTP/2 Protocol Stack
===============================
- .. image:: https://raw.github.com/Lukasa/hyper/development/docs/source/images/hyper.png
+ .. image:: https://github.com/python-hyper/hyper-h2/workflows/CI/badge.svg
+ :target: https://github.com/python-hyper/hyper-h2/actions
+ :alt: Build Status
+ .. image:: https://codecov.io/gh/python-hyper/hyper-h2/branch/master/graph/badge.svg
+ :target: https://codecov.io/gh/python-hyper/hyper-h2
+ :alt: Code Coverage
+ .. image:: https://readthedocs.org/projects/hyper-h2/badge/?version=latest
+ :target: https://hyper-h2.readthedocs.io/en/latest/
+ :alt: Documentation Status
+ .. image:: https://img.shields.io/badge/chat-join_now-brightgreen.svg
+ :target: https://gitter.im/python-hyper/community
+ :alt: Chat community
- .. image:: https://travis-ci.org/python-hyper/hyper-h2.svg?branch=master
- :target: https://travis-ci.org/python-hyper/hyper-h2
+ .. image:: https://raw.github.com/Lukasa/hyper/development/docs/source/images/hyper.png
This repository contains a pure-Python implementation of a HTTP/2 protocol
stack. It's written from the ground up to be embeddable in whatever program you
@@ -27,8 +35,10 @@ Description: ===============================
.. code-block:: python
import h2.connection
+ import h2.config
- conn = h2.connection.H2Connection()
+ config = h2.config.H2Configuration()
+ conn = h2.connection.H2Connection(config=config)
conn.send_headers(stream_id=stream_id, headers=headers)
conn.send_data(stream_id, data)
socket.sendall(conn.data_to_send())
@@ -48,7 +58,7 @@ Description: ===============================
Documentation
=============
- Documentation is available at http://python-hyper.org/h2/.
+ Documentation is available at https://hyper-h2.readthedocs.io/ .
Contributing
============
@@ -71,783 +81,18 @@ Description: ===============================
Authors
=======
- ``hyper-h2`` is maintained by Cory Benfield, with contributions from others. For
- more details about the contributors, please see ``CONTRIBUTORS.rst``.
-
-
- Release History
- ===============
-
- 3.2.0 (2020-02-08)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Receiving DATA frames on closed (or reset) streams now properly emit a
- WINDOW_UPDATE to keep the connection flow window topped up.
-
- API Changes (Backward-Incompatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - ``h2.config.logger`` now uses a `trace(...)` function, in addition
- to `debug(...)`. If you defined a custom logger object, you need to handle
- these new function calls.
-
-
- 3.1.1 (2019-08-02)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Ignore WINDOW_UPDATE and RST_STREAM frames received after stream
- closure.
-
-
- 3.1.0 (2019-01-22)
- ------------------
-
- API Changes (Backward-Incompatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - ``h2.connection.H2Connection.data_to_send`` first and only argument ``amt``
- was renamed to ``amount``.
- - Support for Python 3.3 has been removed.
-
- API Changes (Backward-Compatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - ``h2.connection.H2Connection.send_data`` now supports ``data`` parameter
- being a ``memoryview`` object.
- - Refactor ping-related events: a ``h2.events.PingReceived`` event is fired
- when a PING frame is received and a ``h2.events.PingAckReceived`` event is
- fired when a PING frame with an ACK flag is received.
- ``h2.events.PingAcknowledged`` is deprecated in favour of the identical
- ``h2.events.PingAckReceived``.
- - Added ``ENABLE_CONNECT_PROTOCOL`` to ``h2.settings.SettingCodes``.
- - Support ``CONNECT`` requests with a ``:protocol`` pseudo header
- thereby supporting RFC 8441.
- - A limit to the number of closed streams kept in memory by the
- connection is applied. It can be configured by
- ``h2.connection.H2Connection.MAX_CLOSED_STREAMS``.
-
- Bugfixes
- ~~~~~~~~
-
- - Debug logging when stream_id is None is now fixed and no longer errors.
-
- 3.0.1 (2017-04-03)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - CONTINUATION frames sent on closed streams previously caused stream errors
- of type STREAM_CLOSED. RFC 7540 § 6.10 requires that these be connection
- errors of type PROTOCOL_ERROR, and so this release changes to match that
- behaviour.
- - Remote peers incrementing their inbound connection window beyond the maximum
- allowed value now cause stream-level errors, rather than connection-level
- errors, allowing connections to stay up longer.
- - h2 now rejects receiving and sending request header blocks that are missing
- any of the mandatory pseudo-header fields (:path, :scheme, and :method).
- - h2 now rejects receiving and sending request header blocks that have an empty
- :path pseudo-header value.
- - h2 now rejects receiving and sending request header blocks that contain
- response-only pseudo-headers, and vice versa.
- - h2 now correct respects user-initiated changes to the HEADER_TABLE_SIZE
- local setting, and ensures that if users shrink or increase the header
- table size it is policed appropriately.
-
-
- 2.6.2 (2017-04-03)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - CONTINUATION frames sent on closed streams previously caused stream errors
- of type STREAM_CLOSED. RFC 7540 § 6.10 requires that these be connection
- errors of type PROTOCOL_ERROR, and so this release changes to match that
- behaviour.
- - Remote peers incrementing their inbound connection window beyond the maximum
- allowed value now cause stream-level errors, rather than connection-level
- errors, allowing connections to stay up longer.
- - h2 now rejects receiving and sending request header blocks that are missing
- any of the mandatory pseudo-header fields (:path, :scheme, and :method).
- - h2 now rejects receiving and sending request header blocks that have an empty
- :path pseudo-header value.
- - h2 now rejects receiving and sending request header blocks that contain
- response-only pseudo-headers, and vice versa.
- - h2 now correct respects user-initiated changes to the HEADER_TABLE_SIZE
- local setting, and ensures that if users shrink or increase the header
- table size it is policed appropriately.
-
-
- 2.5.4 (2017-04-03)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - CONTINUATION frames sent on closed streams previously caused stream errors
- of type STREAM_CLOSED. RFC 7540 § 6.10 requires that these be connection
- errors of type PROTOCOL_ERROR, and so this release changes to match that
- behaviour.
- - Remote peers incrementing their inbound connection window beyond the maximum
- allowed value now cause stream-level errors, rather than connection-level
- errors, allowing connections to stay up longer.
- - h2 now correct respects user-initiated changes to the HEADER_TABLE_SIZE
- local setting, and ensures that if users shrink or increase the header
- table size it is policed appropriately.
-
-
- 3.0.0 (2017-03-24)
- ------------------
-
- API Changes (Backward-Incompatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - By default, hyper-h2 now joins together received cookie header fields, per
- RFC 7540 Section 8.1.2.5.
- - Added a ``normalize_inbound_headers`` flag to the ``H2Configuration`` object
- that defaults to ``True``. Setting this to ``False`` changes the behaviour
- from the previous point back to the v2 behaviour.
- - Removed deprecated fields from ``h2.errors`` module.
- - Removed deprecated fields from ``h2.settings`` module.
- - Removed deprecated ``client_side`` and ``header_encoding`` arguments from
- ``H2Connection``.
- - Removed deprecated ``client_side`` and ``header_encoding`` properties from
- ``H2Connection``.
- - ``dict`` objects are no longer allowed for user-supplied headers.
- - The default header encoding is now ``None``, not ``utf-8``: this means that
- all events that carry headers now return those headers as byte strings by
- default. The header encoding can be set back to ``utf-8`` to restore the old
- behaviour.
-
- API Changes (Backward-Compatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - Added new ``UnknownFrameReceived`` event that fires when unknown extension
- frames have been received. This only fires when using hyperframe 5.0 or
- later: earlier versions of hyperframe cause us to silently ignore extension
- frames.
-
- Bugfixes
- ~~~~~~~~
-
- None
-
-
- 2.6.1 (2017-03-16)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Allowed hyperframe v5 support while continuing to ignore unexpected frames.
-
-
- 2.5.3 (2017-03-16)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Allowed hyperframe v5 support while continuing to ignore unexpected frames.
-
-
- 2.4.4 (2017-03-16)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Allowed hyperframe v5 support while continuing to ignore unexpected frames.
-
-
- 2.6.0 (2017-02-28)
- ------------------
-
- API Changes (Backward-Compatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - Added a new ``h2.events.Event`` class that acts as a base class for all
- events.
- - Rather than reject outbound Connection-specific headers, h2 will now
- normalize the header block by removing them.
- - Implement equality for the ``h2.settings.Settings`` class.
- - Added ``h2.settings.SettingCodes``, an enum that is used to store all the
- HTTP/2 setting codes. This allows us to use a better printed representation of
- the setting code in most places that it is used.
- - The ``setting`` field in ``ChangedSetting`` for the ``RemoteSettingsChanged``
- and ``SettingsAcknowledged`` events has been updated to be instances of
- ``SettingCodes`` whenever they correspond to a known setting code. When they
- are an unknown setting code, they are instead ``int``. As ``SettingCodes`` is
- a subclass of ``int``, this is non-breaking.
- - Deprecated the other fields in ``h2.settings``. These will be removed in
- 3.0.0.
- - Added an optional ``pad_length`` parameter to ``H2Connection.send_data``
- to allow the user to include padding on a data frame.
- - Added a new parameter to the ``h2.config.H2Configuration`` initializer which
- takes a logger. This allows us to log by providing a logger that conforms
- to the requirements of this module so that it can be used in different
- environments.
-
- Bugfixes
- ~~~~~~~~
-
- - Correctly reject pushed request header blocks whenever they have malformed
- request header blocks.
- - Correctly normalize pushed request header blocks whenever they have
- normalizable header fields.
- - Remote peers are now allowed to send zero or any positive number as a value
- for ``SETTINGS_MAX_HEADER_LIST_SIZE``, where previously sending zero would
- raise a ``InvalidSettingsValueError``.
- - Resolved issue where the ``HTTP2-Settings`` header value for plaintext
- upgrade that was emitted by ``initiate_upgrade_connection`` included the
- *entire* ``SETTINGS`` frame, instead of just the payload.
- - Resolved issue where the ``HTTP2-Settings`` header value sent by a client for
- plaintext upgrade would be ignored by ``initiate_upgrade_connection``, rather
- than have those settings applied appropriately.
- - Resolved an issue whereby certain frames received from a peer in the CLOSED
- state would trigger connection errors when RFC 7540 says they should have
- triggered stream errors instead. Added more detailed stream closure tracking
- to ensure we don't throw away connections unnecessarily.
-
-
- 2.5.2 (2017-01-27)
- ------------------
-
- - Resolved issue where the ``HTTP2-Settings`` header value for plaintext
- upgrade that was emitted by ``initiate_upgrade_connection`` included the
- *entire* ``SETTINGS`` frame, instead of just the payload.
- - Resolved issue where the ``HTTP2-Settings`` header value sent by a client for
- plaintext upgrade would be ignored by ``initiate_upgrade_connection``, rather
- than have those settings applied appropriately.
-
-
- 2.4.3 (2017-01-27)
- ------------------
-
- - Resolved issue where the ``HTTP2-Settings`` header value for plaintext
- upgrade that was emitted by ``initiate_upgrade_connection`` included the
- *entire* ``SETTINGS`` frame, instead of just the payload.
- - Resolved issue where the ``HTTP2-Settings`` header value sent by a client for
- plaintext upgrade would be ignored by ``initiate_upgrade_connection``, rather
- than have those settings applied appropriately.
-
-
- 2.3.4 (2017-01-27)
- ------------------
-
- - Resolved issue where the ``HTTP2-Settings`` header value for plaintext
- upgrade that was emitted by ``initiate_upgrade_connection`` included the
- *entire* ``SETTINGS`` frame, instead of just the payload.
- - Resolved issue where the ``HTTP2-Settings`` header value sent by a client for
- plaintext upgrade would be ignored by ``initiate_upgrade_connection``, rather
- than have those settings applied appropriately.
-
-
- 2.5.1 (2016-12-17)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Remote peers are now allowed to send zero or any positive number as a value
- for ``SETTINGS_MAX_HEADER_LIST_SIZE``, where previously sending zero would
- raise a ``InvalidSettingsValueError``.
-
-
- 2.5.0 (2016-10-25)
- ------------------
-
- API Changes (Backward-Compatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - Added a new ``H2Configuration`` object that allows rich configuration of
- a ``H2Connection``. This object supersedes the prior keyword arguments to the
- ``H2Connection`` object, which are now deprecated and will be removed in 3.0.
- - Added support for automated window management via the
- ``acknowledge_received_data`` method. See the documentation for more details.
- - Added a ``DenialOfServiceError`` that is raised whenever a behaviour that
- looks like a DoS attempt is encountered: for example, an overly large
- decompressed header list. This is a subclass of ``ProtocolError``.
- - Added support for setting and managing ``SETTINGS_MAX_HEADER_LIST_SIZE``.
- This setting is now defaulted to 64kB.
- - Added ``h2.errors.ErrorCodes``, an enum that is used to store all the HTTP/2
- error codes. This allows us to use a better printed representation of the
- error code in most places that it is used.
- - The ``error_code`` fields on ``ConnectionTerminated`` and ``StreamReset``
- events have been updated to be instances of ``ErrorCodes`` whenever they
- correspond to a known error code. When they are an unknown error code, they
- are instead ``int``. As ``ErrorCodes`` is a subclass of ``int``, this is
- non-breaking.
- - Deprecated the other fields in ``h2.errors``. These will be removed in 3.0.0.
-
- Bugfixes
- ~~~~~~~~
-
- - Correctly reject request header blocks with neither :authority nor Host
- headers, or header blocks which contain mismatched :authority and Host
- headers, per RFC 7540 Section 8.1.2.3.
- - Correctly expect that responses to HEAD requests will have no body regardless
- of the value of the Content-Length header, and reject those that do.
- - Correctly refuse to send header blocks that contain neither :authority nor
- Host headers, or header blocks which contain mismatched :authority and Host
- headers, per RFC 7540 Section 8.1.2.3.
- - Hyper-h2 will now reject header field names and values that contain leading
- or trailing whitespace.
- - Correctly strip leading/trailing whitespace from header field names and
- values.
- - Correctly refuse to send header blocks with a TE header whose value is not
- ``trailers``, per RFC 7540 Section 8.1.2.2.
- - Correctly refuse to send header blocks with connection-specific headers,
- per RFC 7540 Section 8.1.2.2.
- - Correctly refuse to send header blocks that contain duplicate pseudo-header
- fields, or with pseudo-header fields that appear after ordinary header fields,
- per RFC 7540 Section 8.1.2.1.
-
- This may cause passing a dictionary as the header block to ``send_headers``
- to throw a ``ProtocolError``, because dictionaries are unordered and so they
- may trip this check. Passing dictionaries here is deprecated, and callers
- should change to using a sequence of 2-tuples as their header blocks.
- - Correctly reject trailers that contain HTTP/2 pseudo-header fields, per RFC
- 7540 Section 8.1.2.1.
- - Correctly refuse to send trailers that contain HTTP/2 pseudo-header fields,
- per RFC 7540 Section 8.1.2.1.
- - Correctly reject responses that do not contain the ``:status`` header field,
- per RFC 7540 Section 8.1.2.4.
- - Correctly refuse to send responses that do not contain the ``:status`` header
- field, per RFC 7540 Section 8.1.2.4.
- - Correctly update the maximum frame size when the user updates the value of
- that setting. Prior to this release, if the user updated the maximum frame
- size hyper-h2 would ignore the update, preventing the remote peer from using
- the higher frame sizes.
-
- 2.4.2 (2016-10-25)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Correctly update the maximum frame size when the user updates the value of
- that setting. Prior to this release, if the user updated the maximum frame
- size hyper-h2 would ignore the update, preventing the remote peer from using
- the higher frame sizes.
-
- 2.3.3 (2016-10-25)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Correctly update the maximum frame size when the user updates the value of
- that setting. Prior to this release, if the user updated the maximum frame
- size hyper-h2 would ignore the update, preventing the remote peer from using
- the higher frame sizes.
-
- 2.2.7 (2016-10-25)
- ------------------
-
- *Final 2.2.X release*
-
- Bugfixes
- ~~~~~~~~
-
- - Correctly update the maximum frame size when the user updates the value of
- that setting. Prior to this release, if the user updated the maximum frame
- size hyper-h2 would ignore the update, preventing the remote peer from using
- the higher frame sizes.
-
- 2.4.1 (2016-08-23)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Correctly expect that responses to HEAD requests will have no body regardless
- of the value of the Content-Length header, and reject those that do.
-
- 2.3.2 (2016-08-23)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Correctly expect that responses to HEAD requests will have no body regardless
- of the value of the Content-Length header, and reject those that do.
-
- 2.4.0 (2016-07-01)
- ------------------
-
- API Changes (Backward-Compatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - Adds ``additional_data`` to ``H2Connection.close_connection``, allowing the
- user to send additional debug data on the GOAWAY frame.
- - Adds ``last_stream_id`` to ``H2Connection.close_connection``, allowing the
- user to manually control what the reported last stream ID is.
- - Add new method: ``prioritize``.
- - Add support for emitting stream priority information when sending headers
- frames using three new keyword arguments: ``priority_weight``,
- ``priority_depends_on``, and ``priority_exclusive``.
- - Add support for "related events": events that fire simultaneously on a single
- frame.
-
-
- 2.3.1 (2016-05-12)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Resolved ``AttributeError`` encountered when receiving more than one sequence
- of CONTINUATION frames on a given connection.
-
-
- 2.2.5 (2016-05-12)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Resolved ``AttributeError`` encountered when receiving more than one sequence
- of CONTINUATION frames on a given connection.
-
-
- 2.3.0 (2016-04-26)
- ------------------
-
- API Changes (Backward-Compatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - Added a new flag to the ``H2Connection`` constructor: ``header_encoding``,
- that controls what encoding is used (if any) to decode the headers from bytes
- to unicode. This defaults to UTF-8 for backward compatibility. To disable the
- decode and use bytes exclusively, set the field to False, None, or the empty
- string. This affects all headers, including those pushed by servers.
- - Bumped the minimum version of HPACK allowed from 2.0 to 2.2.
- - Added support for advertising RFC 7838 Alternative services.
- - Allowed users to provide ``hpack.HeaderTuple`` and
- ``hpack.NeverIndexedHeaderTuple`` objects to all methods that send headers.
- - Changed all events that carry headers to emit ``hpack.HeaderTuple`` and
- ``hpack.NeverIndexedHeaderTuple`` instead of plain tuples. This allows users
- to maintain header indexing state.
- - Added support for plaintext upgrade with the ``initiate_upgrade_connection``
- method.
-
- Bugfixes
- ~~~~~~~~
-
- - Automatically ensure that all ``Authorization`` and ``Proxy-Authorization``
- headers, as well as short ``Cookie`` headers, are prevented from being added
- to encoding contexts.
-
- 2.2.4 (2016-04-25)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Correctly forbid pseudo-headers that were not defined in RFC 7540.
- - Ignore AltSvc frames, rather than exploding when receiving them.
-
- 2.1.5 (2016-04-25)
- ------------------
-
- *Final 2.1.X release*
-
- Bugfixes
- ~~~~~~~~
-
- - Correctly forbid pseudo-headers that were not defined in RFC 7540.
- - Ignore AltSvc frames, rather than exploding when receiving them.
-
- 2.2.3 (2016-04-13)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Allowed the 4.X series of hyperframe releases as dependencies.
-
- 2.1.4 (2016-04-13)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Allowed the 4.X series of hyperframe releases as dependencies.
-
-
- 2.2.2 (2016-04-05)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Fixed issue where informational responses were erroneously not allowed to be
- sent in the ``HALF_CLOSED_REMOTE`` state.
- - Fixed issue where informational responses were erroneously not allowed to be
- received in the ``HALF_CLOSED_LOCAL`` state.
- - Fixed issue where we allowed information responses to be sent or received
- after final responses.
-
- 2.2.1 (2016-03-23)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Fixed issue where users using locales that did not default to UTF-8 were
- unable to install source distributions of the package.
-
- 2.2.0 (2016-03-23)
- ------------------
-
- API Changes (Backward-Compatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - Added support for sending informational responses (responses with 1XX status)
- codes as part of the standard flow. HTTP/2 allows zero or more informational
- responses with no upper limit: hyper-h2 does too.
- - Added support for receiving informational responses (responses with 1XX
- status) codes as part of the standard flow. HTTP/2 allows zero or more
- informational responses with no upper limit: hyper-h2 does too.
- - Added a new event: ``ReceivedInformationalResponse``. This response is fired
- when informational responses (those with 1XX status codes).
- - Added an ``additional_data`` field to the ``ConnectionTerminated`` event that
- carries any additional data sent on the GOAWAY frame. May be ``None`` if no
- such data was sent.
- - Added the ``initial_values`` optional argument to the ``Settings`` object.
-
- Bugfixes
- ~~~~~~~~
-
- - Correctly reject all of the connection-specific headers mentioned in RFC 7540
- § 8.1.2.2, not just the ``Connection:`` header.
- - Defaulted the value of ``SETTINGS_MAX_CONCURRENT_STREAMS`` to 100, unless
- explicitly overridden. This is a safe defensive initial value for this
- setting.
-
- 2.1.3 (2016-03-16)
- ------------------
-
- Deprecations
- ~~~~~~~~~~~~
-
- - Passing dictionaries to ``send_headers`` as the header block is deprecated,
- and will be removed in 3.0.
-
- 2.1.2 (2016-02-17)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Reject attempts to push streams on streams that were themselves pushed:
- streams can only be pushed on streams that were initiated by the client.
- - Correctly allow CONTINUATION frames to extend the header block started by a
- PUSH_PROMISE frame.
- - Changed our handling of frames received on streams that were reset by the
- user.
-
- Previously these would, at best, cause ProtocolErrors to be raised and the
- connection to be torn down (rather defeating the point of resetting streams
- at all) and, at worst, would cause subtle inconsistencies in state between
- hyper-h2 and the remote peer that could lead to header block decoding errors
- or flow control blockages.
-
- Now when the user resets a stream all further frames received on that stream
- are ignored except where they affect some form of connection-level state,
- where they have their effect and are then ignored.
- - Fixed a bug whereby receiving a PUSH_PROMISE frame on a stream that was
- closed would cause a RST_STREAM frame to be emitted on the closed-stream,
- but not the newly-pushed one. Now this causes a ``ProtocolError``.
-
- 2.1.1 (2016-02-05)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Added debug representations for all events.
- - Fixed problems with setup.py that caused trouble on older setuptools/pip
- installs.
-
- 2.1.0 (2016-02-02)
- ------------------
-
- API Changes (Backward-Compatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - Added new field to ``DataReceived``: ``flow_controlled_length``. This is the
- length of the frame including padded data, allowing users to correctly track
- changes to the flow control window.
- - Defined new ``UnsupportedFrameError``, thrown when frames that are known to
- hyperframe but not supported by hyper-h2 are received. For
- backward-compatibility reasons, this is a ``ProtocolError`` *and* a
- ``KeyError``.
-
- Bugfixes
- ~~~~~~~~
-
- - Hyper-h2 now correctly accounts for padding when maintaining flow control
- windows.
- - Resolved a bug where hyper-h2 would mistakenly apply
- SETTINGS_INITIAL_WINDOW_SIZE to the connection flow control window in
- addition to the stream-level flow control windows.
- - Invalid Content-Length headers now throw ``ProtocolError`` exceptions and
- correctly tear the connection down, instead of leaving the connection in an
- indeterminate state.
- - Invalid header blocks now throw ``ProtocolError``, rather than a grab bag of
- possible other exceptions.
-
- 2.0.0 (2016-01-25)
- ------------------
-
- API Changes (Breaking)
- ~~~~~~~~~~~~~~~~~~~~~~
-
- - Attempts to open streams with invalid stream IDs, either by the remote peer
- or by the user, are now rejected as a ``ProtocolError``. Previously these
- were allowed, and would cause remote peers to error.
- - Receiving frames that have invalid padding now causes the connection to be
- terminated with a ``ProtocolError`` being raised. Previously these passed
- undetected.
- - Settings values set by both the user and the remote peer are now validated
- when they're set. If they're invalid, a new ``InvalidSettingsValueError`` is
- raised and, if set by the remote peer, a connection error is signaled.
- Previously, it was possible to set invalid values. These would either be
- caught when building frames, or would be allowed to stand.
- - Settings changes no longer require user action to be acknowledged: hyper-h2
- acknowledges them automatically. This moves the location where some
- exceptions may be thrown, and also causes the ``acknowledge_settings`` method
- to be removed from the public API.
- - Removed a number of methods on the ``H2Connection`` object from the public,
- semantically versioned API, by renaming them to have leading underscores.
- Specifically, removed:
-
- - ``get_stream_by_id``
- - ``get_or_create_stream``
- - ``begin_new_stream``
- - ``receive_frame``
- - ``acknowledge_settings``
-
- - Added full support for receiving CONTINUATION frames, including policing
- logic about when and how they are received. Previously, receiving
- CONTINUATION frames was not supported and would throw exceptions.
- - All public API functions on ``H2Connection`` except for ``receive_data`` no
- longer return lists of events, because these lists were always empty. Events
- are now only raised by ``receive_data``.
- - Calls to ``increment_flow_control_window`` with out of range values now raise
- ``ValueError`` exceptions. Previously they would be allowed, or would cause
- errors when serializing frames.
-
- API Changes (Backward-Compatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - Added ``PriorityUpdated`` event for signaling priority changes.
- - Added ``get_next_available_stream_id`` function.
- - Receiving DATA frames on streams not in the OPEN or HALF_CLOSED_LOCAL states
- now causes a stream reset, rather than a connection reset. The error is now
- also classified as a ``StreamClosedError``, rather than a more generic
- ``ProtocolError``.
- - Receiving HEADERS or PUSH_PROMISE frames in the HALF_CLOSED_REMOTE state now
- causes a stream reset, rather than a connection reset.
- - Receiving frames that violate the max frame size now causes connection errors
- with error code FRAME_SIZE_ERROR, not a generic PROTOCOL_ERROR. This
- condition now also raises a ``FrameTooLargeError``, a new subclass of
- ``ProtocolError``.
- - Made ``NoSuchStreamError`` a subclass of ``ProtocolError``.
- - The ``StreamReset`` event is now also fired whenever a protocol error from
- the remote peer forces a stream to close early. This is only fired once.
- - The ``StreamReset`` event now carries a flag, ``remote_reset``, that is set
- to ``True`` in all cases where ``StreamReset`` would previously have fired
- (e.g. when the remote peer sent a RST_STREAM), and is set to ``False`` when
- it fires because the remote peer made a protocol error.
- - Hyper-h2 now rejects attempts by peers to increment a flow control window by
- zero bytes.
- - Hyper-h2 now rejects peers sending header blocks that are ill-formed for a
- number of reasons as set out in RFC 7540 Section 8.1.2.
- - Attempting to send non-PRIORITY frames on closed streams now raises
- ``StreamClosedError``.
- - Remote peers attempting to increase the flow control window beyond
- ``2**31 - 1``, either by window increment or by settings frame, are now
- rejected as ``ProtocolError``.
- - Local attempts to increase the flow control window beyond ``2**31 - 1`` by
- window increment are now rejected as ``ProtocolError``.
- - The bytes that represent individual settings are now available in
- ``h2.settings``, instead of needing users to import them from hyperframe.
-
- Bugfixes
- ~~~~~~~~
-
- - RFC 7540 requires that a separate minimum stream ID be used for inbound and
- outbound streams. Hyper-h2 now obeys this requirement.
- - Hyper-h2 now does a better job of reporting the last stream ID it has
- partially handled when terminating connections.
- - Fixed an error in the arguments of ``StreamIDTooLowError``.
- - Prevent ``ValueError`` leaking from Hyperframe.
- - Prevent ``struct.error`` and ``InvalidFrameError`` leaking from Hyperframe.
-
- 1.1.1 (2015-11-17)
- ------------------
-
- Bugfixes
- ~~~~~~~~
-
- - Forcibly lowercase all header names to improve compatibility with
- implementations that demand lower-case header names.
-
- 1.1.0 (2015-10-28)
- ------------------
-
- API Changes (Backward-Compatible)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - Added a new ``ConnectionTerminated`` event, which fires when GOAWAY frames
- are received.
- - Added a subclass of ``NoSuchStreamError``, called ``StreamClosedError``, that
- fires when actions are taken on a stream that is closed and has had its state
- flushed from the system.
- - Added ``StreamIDTooLowError``, raised when the user or the remote peer
- attempts to create a stream with an ID lower than one previously used in the
- dialog. Inherits from ``ValueError`` for backward-compatibility reasons.
-
- Bugfixes
- ~~~~~~~~
-
- - Do not throw ``ProtocolError`` when attempting to send multiple GOAWAY
- frames on one connection.
- - We no longer forcefully change the decoder table size when settings changes
- are ACKed, instead waiting for remote acknowledgement of the change.
- - Improve the performance of checking whether a stream is open.
- - We now attempt to lazily garbage collect closed streams, to avoid having the
- state hang around indefinitely, leaking memory.
- - Avoid further per-stream allocations, leading to substantial performance
- improvements when many short-lived streams are used.
-
- 1.0.0 (2015-10-15)
- ------------------
-
- - First production release!
+ ``hyper-h2`` is maintained by Cory Benfield, with contributions from others.
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
-Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
+Requires-Python: >=3.6.1
+Description-Content-Type: text/x-rst