Skip to main content

Pure-Python HPACK header compression

Project description

https://raw.github.com/Lukasa/hyper/development/docs/source/images/hyper.png https://travis-ci.org/Lukasa/hpack.png?branch=master

This module contains a pure-Python HTTP/2 header encoding (HPACK) logic for use in Python programs that implement HTTP/2. It also contains a compatibility layer that automatically enables the use of nghttp2 if it’s available.

Contributing

hpack 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

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

Authors

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

Release History

2.1.1 (2016-03-16)

Bugfixes

  • When passing a dictionary or dictionary subclass to Encoder.encode, HPACK now ensures that HTTP/2 special headers (headers whose names begin with : characters) appear first in the header block.

2.1.0 (2016-02-02)

API Changes (Backward Compatible)

  • Added new InvalidTableIndex exception, a subclass of HPACKDecodingError.

  • Instead of throwing IndexError when encountering invalid encoded integers HPACK now throws HPACKDecodingError.

  • Instead of throwing UnicodeDecodeError when encountering headers that are not UTF-8 encoded, HPACK now throws HPACKDecodingError.

  • Instead of throwing IndexError when encountering invalid table offsets, HPACK now throws InvalidTableIndex.

  • Added raw flag to decode, allowing decode to return bytes instead of attempting to decode the headers as UTF-8.

Bugfixes

  • memoryview objects are now used when decoding HPACK, improving the performance by avoiding unnecessary data copies.

2.0.1 (2015-11-09)

  • Fixed a bug where the Python HPACK implementation would only emit header table size changes for the total change between one header block and another, rather than for the entire sequence of changes.

2.0.0 (2015-10-12)

  • Remove unused HPACKEncodingError.

  • Add the shortcut ability to import the public API (Encoder, Decoder, HPACKError, HPACKDecodingError) directly, rather than from hpack.hpack.

1.1.0 (2015-07-07)

  • Add support for emitting ‘never indexed’ header fields, by using an optional third element in the header tuple. With thanks to @jimcarreer!

1.0.1 (2015-04-19)

  • Header fields that have names matching header table entries are now added to the header table. This improves compression efficiency at the cost of slightly more table operations. With thanks to Tatsuhiro Tsujikawa.

1.0.0 (2015-04-13)

  • Initial fork of the code from hyper.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hpack-2.1.1.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

hpack-2.1.1-py2.py3-none-any.whl (17.6 kB view details)

Uploaded Python 2Python 3

File details

Details for the file hpack-2.1.1.tar.gz.

File metadata

  • Download URL: hpack-2.1.1.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for hpack-2.1.1.tar.gz
Algorithm Hash digest
SHA256 17cf0750f0555447f546b4754f69c8a906a3c10a51d1884c83e41f4f3bd71f8a
MD5 877844fb4c20e3d6a77dba85aa8dcc92
BLAKE2b-256 8c2be6e2f554368785c7eb68d618fd6457625be1535e807f6abf11c7db710f34

See more details on using hashes here.

File details

Details for the file hpack-2.1.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for hpack-2.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ccbc473e6df96431f926321359a4cb9e20549fa8b3abe2eadbb16d6b3db227b9
MD5 da984ec52552be733ee1a9c4ecf29ab9
BLAKE2b-256 6a549a84ecff85d475e25a828badda5c5870f2176bbe83177883b9a5dad87a50

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page