Skip to content
This repository has been archived by the owner on Jan 13, 2021. It is now read-only.

Releases: python-hyper/hyper

v0.7.0

02 Aug 14:18
070dd32
Compare
Choose a tag to compare

Major Changes

  • Added a ping method, allowing the user to use the HTTP/2 PING frame to check connection liveness before, instead of, or between issuing requests.

Bugfixes

  • Don't send WINDOWUPDATE frames on closed streams.
  • Clean up the outstanding stream reads on stream close.
  • Ensured that connection state is always unconditionally reset on stream close, regardless of whether the connection has a socket object open or not.

v0.6.2

02 Aug 14:20
10f29b8
Compare
Choose a tag to compare

Bugfixes

  • Fixed packaging error made in prior release.

v0.6.1

02 Aug 14:21
9766ad0
Compare
Choose a tag to compare

Bugfixes

  • Tolerate errors when attempting to send a RST_STREAM frame.
  • Ensure that calls to fileno() on the compatibility SSLSocket object actually work correctly. Thanks to @benlast!
  • Improved some problems with thread-safety in the Stream class. Thanks to @fredthomsen!
  • Allowed for systems to use hyper without the bundled cert file being present. Thanks to @JasonGowthorpe!

v0.6.0

02 Aug 14:22
f8abbc4
Compare
Choose a tag to compare

Major Changes

  • The HTTP20Connection object is now thread-safe, so long as stream IDs are used on all method calls.
  • Replaced the HTTP/2 state machine logic entirely to use hyper-h2. This will dramatically change the behaviour of the library in many situations, mostly for the better. However, this is also likely to introduce new bugs, so please be cautious.

API Changes

  • Allow non-dictionary headers in request.
  • HTTP20Connection now has a force_proto keyword argument to allow the HTTP20Connection to ignore the NPN/ALPN result.
  • The --h2 CLI flag now ignores the result of NPN/ALPN negotiation when hitting HTTPS URLs.
  • Added support for HTTPS client certificates.
  • Notifications about streams being reset is now delayed to fire when the stream in question is next accessed, rather than immediately.

Bugfixes

  • Overriding HTTP/2 special headers no longer leads to ill-formed header blocks with special headers at the end.
  • Vastly improved IPv6 support.
  • Fix converting unicode bodies to bytestrings on Python 2.7.
  • Allow overriding the HTTP/2 pseudo-headers from the CLI.
  • Fixed problems with incorrectly generating the HTTP2-Settings header.
  • Improved handling of socket errors.

v0.5.0

02 Aug 14:24
Compare
Choose a tag to compare

Feature Enhancement

  • Pay attention to max frame length changes from remote peers. Thanks to @jdecuyper!

Bugfixes

  • Prevent hyper from emitting oversized frames. Thanks to @jdecuyper!
  • Prevent hyper from emitting RST_STREAM frames whenever it finishes consuming a stream.
  • Prevent hyper from emitting lots of RST_STREAM frames.
  • Hyper CLI tool now correctly uses TLS for any https-schemed URL.
  • Hyper CLI tool no longer attempts to decode bytes, instead writing them straight to the terminal.
  • Added new --h2 flag to the Hyper CLI tool, which allows straight HTTP/2 in plaintext, rather than attempting to upgrade from HTTP/1.1.
  • Allow arguments and keyword arguments in abstract version of get_response.

Software Updates

  • Updated hyperframe to version 2.1.0

v0.4.0

21 Jun 19:52
Compare
Choose a tag to compare

New Features

  • HTTP/1.1 and HTTP/2 abstraction layer. Don't specify what version you want to use, just automatically get the best version the server supports!
  • Support for upgrading plaintext HTTP/1.1 to plaintext HTTP/2, with thanks to @fredthomsen! (Issue #28)
  • HTTP11Connection and HTTPConnection objects are now both context managers.
  • Added support for ALPN negotiation when using PyOpenSSL. (Issue #31)
  • Added support for user-provided SSLContext objects, with thanks to @jdecuyper! (Issue #8)
  • Better support for HTTP/2 error codes, with thanks to @jdecuyper! (Issue #119)
  • More gracefully close connections, with thanks to @jdecuyper! (Issue #15)

Structural Changes

  • The framing and HPACK layers were stripped out into their own libraries.

Bugfixes

  • Properly verify hostnames when using PyOpenSSL.

v0.3.1

03 Apr 19:54
Compare
Choose a tag to compare

Bugfixes

  • Fix blocking ImportError. (Issue #114)

v0.3.0

03 Apr 18:19
Compare
Choose a tag to compare

New Features

  • HTTP/1.1 support! See the documentation for more. (Issue #75)
  • Implementation of a HTTPHeaderMap data structure that provides dictionary style lookups while retaining all the semantic information of HTTP headers.

Major Changes

  • Various changes in the HTTP/2 APIs:
    • The getheader, getheaders, gettrailer, and gettrailers methods on the response object have been removed, replaced instead with simple .headers and .trailers properties that contain HTTPHeaderMap structures.
    • Headers and trailers are now bytestrings, rather than unicode strings.
    • An iter_chunked() method was added to response objects that allows iterating over data in units of individual data frames.
    • Changed the name of getresponse() to get_response(), because getresponse() was a terrible name forced upon me by httplib.

v0.2.2

03 Apr 16:59
Compare
Choose a tag to compare

Bugfixes

  • Hyper now correctly handles 'never indexed' header fields. (Issue #110)

v0.2.1

30 Mar 08:47
Compare
Choose a tag to compare

New Features

  • There is now a hyper command-line client that supports making HTTP/2 requests directly from the command-line.

Major Changes

  • Support for the final drafts of HTTP/2 and HPACK. Updated to offer the 'h2' ALPN token.

Minor Changes

  • We not only remove the Connection header but all headers it refers to.