Install & Compatibility
Where this runs
tested against v0.9.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.394s · 21.3MB
glibcpy 3.10–3.910 runs
installs and imports cleanly · install 2.7s · import 0.457s · 22MB
19MB installed
● package 19MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
HTTPConnection
✓ from hyper import HTTPConnection
Main class for making HTTP/2 requests. Note this is from the `hyper` namespace, not `hyper-up`.
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.
import ssl
from hyper import HTTPConnection
# Note: http2bin.org is an example; actual HTTP/2 server availability may vary.
# This library is unmaintained and may have security vulnerabilities.
try:
# Using HTTPS for HTTP/2. The default port for HTTP/2 over TLS is 443.
conn = HTTPConnection('http2bin.org:443')
conn.request('GET', '/get')
resp = conn.get_response()
print(f"Status: {resp.status}")
print(f"Headers: {resp.headers}")
print(f"Body: {resp.read().decode('utf-8')}")
except ssl.SSLError as e:
print(f"SSL Error: {e}. This often indicates issues with TLS negotiation or outdated cryptography.")
except Exception as e:
print(f"An unexpected error occurred: {e}")
Debug
Known issues
breakingThe 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.fixMigrate 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).
affects: 0.9.0 and earlier
breakingUsing `hyper-up` poses significant security risks due to unpatched vulnerabilities in its core HTTP/2 implementation and underlying dependencies, especially regarding TLS/SSL.fixImmediately replace `hyper-up` with a secure and actively maintained HTTP client like `httpx` to protect against known and unknown security flaws.
affects: 0.9.0 and earlier
gotchaThe 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.fixFamiliarize 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.
affects: 0.9.0 and earlier
Upgrade
Version history
0.9.0latest on PyPI · released May 15, 2025
Audit
Dependencies
h2requiredCore HTTP/2 protocol implementation.
hpackrequiredHPACK compression for HTTP/2 headers.
hyperframerequiredHTTP/2 frame parsing and serialization.
pyOpenSSLrequiredSSL/TLS functionalities, often required for HTTP/2 over TLS (HTTPS).
service_identityrequiredService identity verification for TLS connections.
backports.ssl_match_hostnamerequiredBackport of ssl.match_hostname for older Python versions, though often pulled for compatibility.