This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

This library contains the HTTP/2 framing code used in the hyper project. It provides a pure-Python codebase that is capable of decoding a binary stream into HTTP/2 frames.

This library is used directly by hyper and a number of other projects to provide HTTP/2 frame decoding logic.

Contributing

hyperframe welcomes contributions from anyone! Unlike many other projects we are happy to accept cosmetic contributions and small contributions, in addition to large feature requests and changes.

Before you contribute (either by opening an issue or filing a pull request), please read the contribution guidelines.

License

hyperframe is made available under the MIT License. For more details, see the LICENSE file in the repository.

Authors

hyperframe is maintained by Cory Benfield, with contributions from others. For more details about the contributors, please see CONTRIBUTORS.rst.

Release History

4.0.1 (2016-03-13)

Bugfixes

  • Fixed bug with the repr of AltSvcFrame, where building it could throw exceptions if the frame had been received from the network.

4.0.0 (2016-03-13)

Backwards Incompatible API Changes

  • Updated old ALTSVC frame definition to match the newly specified RFC 7838.
  • Remove BLOCKED frame, which was never actually specified.
  • Removed previously deprecated SettingsFrame.SETTINGS_MAX_FRAME_SIZE and SettingsFrame.SETTINGS_MAX_HEADER_LIST_SIZE.

3.2.0 (2016-02-02)

API Changes (Backward-compatible)

  • Invalid PING frame bodies now raise InvalidFrameError, not ValueError. Note that InvalidFrameError is a ValueError subclass.
  • Invalid RST_STREAM frame bodies now raise InvalidFramError, not ValueError. Note that InvalidFrameError is a ValueError subclass.
  • Canonicalized the names of SettingsFrame.SETTINGS_MAX_FRAME_SIZE and SettingsFrame.SETTINGS_MAX_HEADER_LIST_SIZE to match their peers, by adding new properties SettingsFrame.MAX_FRAME_SIZE and SettingsFrame.SETTINGS_MAX_HEADER_LIST_SIZE. The old names are still present, but will be deprecated in 4.0.0.

Bugfixes

  • The change in 3.1.0 that ensured that InvalidFrameError would be thrown did not affect certain invalid values in ALT_SVC frames. This has been fixed: ValueError will no longer be thrown from invalid ALT_SVC bodies.

3.1.1 (2016-01-18)

Bugfixes

  • Correctly error when receiving Ping frames that have insufficient data.

3.1.0 (2016-01-13)

API Changes

  • Added new InvalidFrameError that is thrown instead of struct.error when parsing a frame.

Bugfixes

  • Fixed error when trying to serialize frames that use Priority information with the defaults for that information.
  • Fixed errors when displaying the repr of frames with non-printable bodies.

3.0.1 (2016-01-08)

Bugfixes

  • Fix issue where unpadded DATA, PUSH_PROMISE and HEADERS frames that had empty bodies would raise InvalidPaddingError exceptions when parsed.

3.0.0 (2016-01-08)

Backwards Incompatible API Changes

  • Parsing padded frames that have invalid padding sizes now throws an InvalidPaddingError.

2.2.0 (2015-10-15)

API Changes

  • When an unknown frame is encountered, parse_frame_header now throws a ValueError subclass: UnknownFrameError. This subclass contains the frame type and the length of the frame body.

2.1.0 (2015-10-06)

API Changes

  • Frames parsed from binary data now carry a body_len attribute that matches the frame length (minus the frame header).

2.0.0 (2015-09-21)

API Changes

  • Attempting to parse unrecognised frames now throws ValueError instead of KeyError. Thanks to @Kriechi!
  • Flags are now validated for correctness, preventing setting flags that hyperframe does not recognise and that would not serialize. Thanks to @mhils!
  • Frame properties can now be initialized in the constructors. Thanks to @mhils and @Kriechi!
  • Frames that cannot be sent on a stream now have their stream ID defaulted to 0. Thanks to @Kriechi!

Other Changes

  • Frames have a more useful repr. Thanks to @mhils!

1.1.1 (2015-07-20)

  • Fix a bug where FRAME_MAX_LEN was one byte too small.

1.1.0 (2015-06-28)

  • Add body_len property to frames to enable introspection of the actual frame length. Thanks to @jdecuyper!

1.0.1 (2015-06-27)

  • Fix bug where the frame header would have an incorrect length added to it.

1.0.0 (2015-04-12)

  • Initial extraction from hyper.
Release History

Release History

4.0.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

4.0.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

3.2.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

3.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

3.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

3.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

3.0.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

2.2.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

2.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

2.0.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
hyperframe-4.0.1-py2.py3-none-any.whl (13.5 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Apr 13, 2016
hyperframe-4.0.1.tar.gz (16.1 kB) Copy SHA256 Checksum SHA256 Source Apr 13, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting