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

python-hyper/hyper

development
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
July 21, 2017 18:44
October 29, 2015 09:39
January 12, 2021 19:36
February 22, 2015 09:52
September 2, 2017 10:55

Hyper: HTTP/2 Client for Python

This project is no longer maintained!

Please use an alternative, such as HTTPX or others.

We will not publish further updates for hyper.

Potential security issues will not be addressed.


So long, and thanks for all the fish!


https://raw.github.com/Lukasa/hyper/development/docs/source/images/hyper.png

HTTP is changing under our feet. HTTP/1.1, our old friend, is being supplemented by the brand new HTTP/2 standard. HTTP/2 provides many benefits: improved speed, lower bandwidth usage, better connection management, and more.

hyper provides these benefits to your Python code. How? Like this:

from hyper import HTTPConnection

conn = HTTPConnection('nghttp2.org:443')
conn.request('GET', '/httpbin/get')
resp = conn.get_response()

print(resp.read())

Simple.

Caveat Emptor!

Please be warned: hyper is in a very early alpha. You will encounter bugs when using it. In addition, there are very many rough edges. With that said, please try it out in your applications: I need your feedback to fix the bugs and file down the rough edges.

Versions

hyper supports the final draft of the HTTP/2 specification: additionally, it provides support for drafts 14, 15, and 16 of the HTTP/2 specification. It also supports the final draft of the HPACK specification.

Compatibility

hyper is intended to be a drop-in replacement for http.client, with a similar API. However, hyper intentionally does not name its classes the same way http.client does. This is because most servers do not support HTTP/2 at this time: I don't want you accidentally using hyper when you wanted http.client.

Documentation

Looking to learn more? Documentation for hyper can be found on Read the Docs.

Contributing

hyper 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

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

Authors

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