A Python HTTP client library with browser fingerprinting capabilities, written in C for performance.
import httpmorph
# Simple GET request
response = httpmorph.get('https://example.com')
print(response.status_code, response.text)
# Use a session with browser profile
session = httpmorph.Session(browser='chrome')
response = session.get('https://example.com')- C implementation - Native C code with Python bindings
- Browser profiles - Mimic Chrome, Firefox, Safari, or Edge
- HTTP/2 support - ALPN negotiation via nghttp2
- TLS fingerprinting - JA3 fingerprint generation
- Connection pooling - Automatic connection reuse
- Async support - AsyncClient with epoll/kqueue
- Compression - Automatic gzip/deflate decompression
- Python 3.8+
- BoringSSL (built from source during installation)
- libnghttp2 (for HTTP/2 support)
pip install httpmorphSee :doc:`installation` for build requirements and troubleshooting.
import httpmorph
# GET request
response = httpmorph.get('https://httpbin.org/get')
print(response.json())
# POST with JSON
response = httpmorph.post(
'https://httpbin.org/post',
json={'key': 'value'}
)
# Session with cookies
session = httpmorph.Session(browser='chrome')
response = session.get('https://example.com')
print(session.cookies)
# HTTP/2
client = httpmorph.Client(http2=True)
response = client.get('https://www.google.com')
print(response.http_version) # '2.0'.. toctree:: :maxdepth: 2 installation quickstart api advanced
httpmorph is under active development. The API may change between minor versions.
MIT License
Arman Hossain
- GitHub: arman-bd
- Email: arman@bytetunnels.com