{"id":5255,"library":"hyper","title":"Hyper: HTTP/2 Client for Python","description":"Hyper is a Python library designed to provide an HTTP/2 client. While it aimed to offer benefits like improved speed and lower bandwidth usage, the project is no longer maintained. The current and final version is 0.7.0, and there is no ongoing release cadence.","status":"abandoned","version":"0.7.0","language":"en","source_language":"en","source_url":"https://github.com/python-hyper/hyper","tags":["http2","client","networking","http"],"install":[{"cmd":"pip install hyper","lang":"bash","label":"Install stable version"}],"dependencies":[{"reason":"Required for modern TLS support on Python versions older than 3.4 (or 2.7.9).","package":"PyOpenSSL","optional":false}],"imports":[{"symbol":"HTTPConnection","correct":"from hyper import HTTPConnection"},{"symbol":"HTTPSConnection","correct":"from hyper import HTTPSConnection"}],"quickstart":{"code":"from hyper import HTTPConnection\n\nconn = HTTPConnection('http2bin.org:443')\nconn.request('GET', '/get')\nresp = conn.get_response()\nprint(resp.read().decode('utf-8'))","lang":"python","description":"This example demonstrates how to make a basic GET request to an HTTP/2 testing service using `hyper.HTTPConnection`. The API is designed to be similar to Python's built-in `http.client`."},"warnings":[{"fix":"Migrate to an actively maintained HTTP client library, such as `HTTPX` or `requests`.","message":"The `hyper` project is officially unmaintained. No further updates will be published, and potential security issues will not be addressed. It is strongly recommended to use actively maintained alternatives like `HTTPX` for new projects.","severity":"breaking","affected_versions":"0.7.0 and earlier"},{"fix":"No direct fix other than moving to a more stable and maintained library. If continuing to use `hyper`, proceed with extreme caution and thorough testing.","message":"The library was considered 'early alpha' even at version 0.7.0, with a warning that users would encounter bugs and 'many rough edges'. Expect unstable behavior and potential issues.","severity":"gotcha","affected_versions":"All versions (0.x.x)"},{"fix":"If upgrading from versions prior to 0.6.0, extensive re-testing is necessary. Given the unmaintained status, downgrading is not recommended as a long-term solution. Migration to a new library is the best approach.","message":"Version 0.6.0 significantly changed the HTTP/2 state machine logic by replacing it with `hyper-h2`. This 'dramatically changed the behaviour of the library' and was noted to likely introduce new bugs.","severity":"breaking","affected_versions":"0.6.0 onwards"},{"fix":"Ensure `PyOpenSSL` is correctly installed and linked to an appropriate OpenSSL version, or preferably, use Python 3.4+ where TLS support is automatically provided by the standard library.","message":"For Python versions older than 3.4 (or 2.7.9), `hyper` relies on `PyOpenSSL` for modern TLS support. Installing `PyOpenSSL` may require building it against OpenSSL 1.0.1 or later, which can be non-trivial. Follow `cryptography` project's OpenSSL installation instructions, replacing references to `cryptography` with `hyper`.","severity":"gotcha","affected_versions":"<3.4 and <2.7.9"}],"env_vars":null,"last_verified":"2026-04-13T00:00:00.000Z","next_check":"2026-07-12T00:00:00.000Z"}