{"id":9041,"library":"hyper-up","title":"Hyper HTTP/2 Client for Python (hyper-up)","description":"hyper-up is a Python HTTP/2 client library, providing an API similar to Python's `http.client` for interacting with HTTP/2 servers. It is a fork of the `hyper` project by Lukasa, which has been explicitly abandoned since 2021. The `hyper-up` package itself has not seen updates since 2017, making it unmaintained and potentially insecure. Users are strongly advised to use modern, actively maintained HTTP clients instead.","status":"abandoned","version":"0.9.0","language":"python","source_language":"en","source_url":"https://github.com/vasanski/hyper","tags":["http","http/2","client","deprecated","abandoned","insecure"],"install":[{"cmd":"pip install hyper-up","lang":"bash","label":"Install `hyper-up`"}],"dependencies":[{"reason":"Core HTTP/2 protocol implementation.","package":"h2"},{"reason":"HPACK compression for HTTP/2 headers.","package":"hpack"},{"reason":"HTTP/2 frame parsing and serialization.","package":"hyperframe"},{"reason":"SSL/TLS functionalities, often required for HTTP/2 over TLS (HTTPS).","package":"pyOpenSSL"},{"reason":"Service identity verification for TLS connections.","package":"service_identity"},{"reason":"Backport of ssl.match_hostname for older Python versions, though often pulled for compatibility.","package":"backports.ssl_match_hostname"}],"imports":[{"note":"Main class for making HTTP/2 requests. Note this is from the `hyper` namespace, not `hyper-up`.","symbol":"HTTPConnection","correct":"from hyper import HTTPConnection"}],"quickstart":{"code":"import ssl\nfrom hyper import HTTPConnection\n\n# Note: http2bin.org is an example; actual HTTP/2 server availability may vary.\n# This library is unmaintained and may have security vulnerabilities.\ntry:\n    # Using HTTPS for HTTP/2. The default port for HTTP/2 over TLS is 443.\n    conn = HTTPConnection('http2bin.org:443')\n    conn.request('GET', '/get')\n    resp = conn.get_response()\n    print(f\"Status: {resp.status}\")\n    print(f\"Headers: {resp.headers}\")\n    print(f\"Body: {resp.read().decode('utf-8')}\")\nexcept ssl.SSLError as e:\n    print(f\"SSL Error: {e}. This often indicates issues with TLS negotiation or outdated cryptography.\")\nexcept Exception as e:\n    print(f\"An unexpected error occurred: {e}\")\n","lang":"python","description":"Establishes an HTTP/2 connection to a server, sends a GET request, and prints the response. This example is based on the original `hyper` library's usage, which `hyper-up` replicates. Due to the library's unmaintained status, connecting to modern HTTPS servers might encounter SSL/TLS errors or security warnings."},"warnings":[{"fix":"Migrate to a modern, actively maintained HTTP client like `httpx` for HTTP/2 support, or `requests` (with `requests-toolbelt` for HTTP/2 if needed, though `httpx` is preferred for native HTTP/2).","message":"The upstream `hyper` project, which `hyper-up` is based on, has been explicitly abandoned since 2021, recommending alternatives. `hyper-up` itself has not been updated since 2017.","severity":"breaking","affected_versions":"0.9.0 and earlier"},{"fix":"Immediately replace `hyper-up` with a secure and actively maintained HTTP client like `httpx` to protect against known and unknown security flaws.","message":"Using `hyper-up` poses significant security risks due to unpatched vulnerabilities in its core HTTP/2 implementation and underlying dependencies, especially regarding TLS/SSL.","severity":"breaking","affected_versions":"0.9.0 and earlier"},{"fix":"Familiarize yourself with the `http.client` pattern or switch to a client like `httpx` which offers a more modern, 'requests-like' API alongside native HTTP/2 support.","message":"The API of `hyper-up` (via `hyper` import) is designed to be similar to Python's `http.client`, which can be less ergonomic than modern `requests`-style APIs.","severity":"gotcha","affected_versions":"0.9.0 and earlier"}],"env_vars":null,"search_vec":"'2017':59 '2021':47 'abandon':45,82 'activ':73 'advis':69 'api':20 'client':3,16,76,80 'deprec':81 'explicit':44 'fork':34 'http':75,78 'http.client':25 'http/2':2,15,29,79 'hyper':1,7,10,37,50 'hyper-up':6,9,49 'insecur':65,83 'instead':77 'interact':27 'librari':17 'lukasa':40 'maintain':74 'make':60 'modern':72 'packag':52 'potenti':64 'project':38 'provid':18 'python':5,14,23 'seen':56 'server':30 'similar':21 'sinc':46,58 'strong':68 'unmaintain':62 'updat':57 'use':71 'user':66","created_at":"2026-04-16T18:48:09.825584+00:00","updated_at":"2026-04-16T18:48:09.825584+00:00","problems":{"verify_error":"/tmp/tmpc10or706/venv/lib/python3.12/site-packages/hyper/packages/rfc3986/misc.py:33: SyntaxWarning: invalid escape sequence '\\*'\n  're_sub_delimiters': \"!$&'()\\*+,;=\",\n/tmp/tmpc10or706/venv/lib/python3.12/site-packages/hyper/packages/rfc3986/misc.py:37: SyntaxWarning: invalid escape sequence '\\-'\n "},"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.9.0","cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/vasanski/hyper","docs":null,"changelog":null,"pypi":"https://pypi.org/project/hyper-up/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["http-networking"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"install_fail","verified_at":"2026-06-28","last_verified":"2026-06-28","next_check":"2026-07-09","install_tag":null}}