Skip to main content

httpmorph

Build codecov PyPI version License: MIT

Python Platforms Architectures

A Python HTTP client focused on mimicking browser fingerprints.

⚠️ Work in Progress - This library is in early development. Features and API may change.

Features

  • Requests-compatible API - Drop-in replacement for most Python requests use cases
  • High Performance - Native C implementation with BoringSSL for HTTP/HTTPS
  • HTTP/2 Support - Full HTTP/2 with ALPN negotiation via nghttp2 (httpx-like API)
  • Chrome 127-143 Fingerprints - Perfect JA4 fingerprint matching
  • Browser Fingerprinting - Realistic Chrome browser profiles (127-143)
  • TLS Fingerprinting - JA3N/JA4/JA4_R fingerprint generation with post-quantum crypto
  • HTTP/2 Fingerprinting - Perfect Akamai HTTP/2 fingerprint matching
  • Connection Pooling - Automatic connection reuse for better performance
  • Session Management - Persistent cookies and headers across requests

Installation

pip install httpmorph

Platform Support

httpmorph provides pre-built wheels for maximum compatibility:

Platform Architectures Python Versions
Linux x86_64, aarch64 (ARM64) 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14
macOS Intel (x86_64), Apple Silicon (arm64)* 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14
Windows x64 (AMD64) 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14

*macOS wheels are universal2 binaries supporting both Intel and Apple Silicon

Total Coverage: 28 pre-built wheels serving 99%+ of Python users

Requirements

  • Python 3.8 or later
  • No compilation required - batteries included!

Quick Start

import httpmorph

# Simple GET request
response = httpmorph.get('https://icanhazip.com')
print(response.status_code)
print(response.text)

# POST with JSON
response = httpmorph.post(
    'https://httpbin.org/post',
    json={'key': 'value'}
)

# Using sessions
session = httpmorph.Session(browser='chrome')
response = session.get('https://example.com')

# HTTP/2 support (httpx-like API)
client = httpmorph.Client(http2=True)
response = client.get('https://www.google.com')
print(response.http_version)  # '2.0'

Browser Profiles

Mimic real browser behavior with pre-configured profiles:

# Use Chrome fingerprint (defaults to Chrome 143)
response = httpmorph.get('https://example.com', browser='chrome')

# Use specific Chrome version (127-143 supported)
session = httpmorph.Session(browser='chrome143')
response = session.get('https://example.com')

# Available browsers: chrome, chrome127-chrome143

OS-Specific User Agents

httpmorph supports different operating system user agents to simulate requests from various platforms:

import httpmorph

# macOS (default)
session = httpmorph.Session(browser='chrome', os='macos')
# User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ...

# Windows
session = httpmorph.Session(browser='chrome', os='windows')
# User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...

# Linux
session = httpmorph.Session(browser='chrome', os='linux')
# User-Agent: Mozilla/5.0 (X11; Linux x86_64) ...

Supported OS values:

  • macos - macOS / Mac OS X (default)
  • windows - Windows 10/11
  • linux - Linux distributions

The OS parameter only affects the User-Agent string, while all other fingerprinting characteristics (TLS, HTTP/2, JA3/JA4) remain consistent to match the specified browser profile.

Chrome Fingerprint Matching

httpmorph accurately mimics Chrome 127-143 TLS and HTTP/2 fingerprints with:

  • JA4 ✅ Perfect match (t13d1516h2_8daaf6152771_d8a2da3f94cd)
  • JA4_R ✅ Perfect match
  • JA3N ✅ Perfect match (normalized JA3: dcefaf3f0e71d260d19dc1d0749c9278)
  • HTTP/2 Akamai ✅ Perfect match (1:65536;2:0;4:6291456;6:262144|15663105|0|m,a,s,p)
  • User-Agent: Version-specific Chrome user agents
  • TLS 1.3 with correct cipher suites and extensions
  • HTTP/2 with Chrome-specific SETTINGS frame and pseudo-header order
  • Post-quantum cryptography (X25519MLKEM768)
  • Certificate compression (Brotli)

Verify your fingerprint:

import httpmorph

# Make a request to fingerprint checker
response = httpmorph.get('https://tls.peet.ws/api/all', browser='chrome143')
data = response.json()
print(f"JA4: {data['tls']['ja4']}")

# Expected: t13d1516h2_8daaf6152771_d8a2da3f94cd ✅

All Chrome 127-143 profiles produce exact JA4 matches with real Chrome browsers.

Advanced Usage

HTTP/2 Support

httpmorph supports HTTP/2 with an httpx-like API:

# Both Client and Session default to HTTP/2 (http2=True) like Chrome
client = httpmorph.Client()
response = client.get('https://www.google.com')
print(response.http_version)  # '2.0'

session = httpmorph.Session(browser='chrome')
response = session.get('https://www.google.com')
print(response.http_version)  # '2.0'

# Per-request HTTP/2 override (disable for specific request)
client = httpmorph.Client()  # Defaults to HTTP/2
response = client.get('https://example.com', http2=False)  # Disable for this request

Custom Headers

headers = {
    'User-Agent': 'MyApp/1.0',
    'Authorization': 'Bearer token123'
}
response = httpmorph.get('https://api.example.com', headers=headers)

File Uploads

files = {'file': ('report.pdf', open('report.pdf', 'rb'))}
response = httpmorph.post('https://httpbin.org/post', files=files)

Timeout Control

# Single timeout value
response = httpmorph.get('https://example.com', timeout=5)

# Separate connect and read timeouts
response = httpmorph.get('https://example.com', timeout=(3, 10))

SSL Verification

# Disable SSL verification (not recommended for production)
response = httpmorph.get('https://example.com', verify_ssl=False)

Authentication

# Basic authentication
response = httpmorph.get(
    'https://api.example.com',
    auth=('username', 'password')
)

Redirects

# Follow redirects (default behavior)
response = httpmorph.get('https://example.com/redirect')

# Don't follow redirects
response = httpmorph.get(
    'https://example.com/redirect',
    allow_redirects=False
)

# Check redirect history
print(len(response.history))  # Number of redirects

Sessions with Cookies

session = httpmorph.Session()

# Cookies persist across requests
session.get('https://example.com/login')
session.post('https://example.com/form', data={'key': 'value'})

# Access cookies
print(session.cookies)

API Compatibility

httpmorph aims for high compatibility with Python's requests library:

Feature Status
GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS Supported
JSON request/response Supported
Form data & file uploads Supported
Custom headers Supported
Authentication Supported
Cookies & sessions Supported
Redirects with history Supported
Timeout control Supported
SSL verification Supported
Streaming responses Supported
Exception hierarchy Supported

Response Object

response = httpmorph.get('https://httpbin.org/get')

# Status and headers
print(response.status_code)      # 200
print(response.ok)                # True
print(response.reason)            # 'OK'
print(response.headers)           # {'Content-Type': 'application/json', ...}

# Response body
print(response.text)              # Response as string
print(response.body)              # Response as bytes
print(response.json())            # Parse JSON response

# Request info
print(response.url)               # Final URL after redirects
print(response.history)           # List of redirect responses

# Timing
print(response.elapsed)           # Response time
print(response.total_time_us)     # Total time in microseconds

# TLS info
print(response.tls_version)       # TLS version used
print(response.tls_cipher)        # Cipher suite
print(response.ja3_fingerprint)   # JA3 fingerprint

Exception Handling

import httpmorph

try:
    response = httpmorph.get('https://example.com', timeout=5)
    response.raise_for_status()  # Raise exception for 4xx/5xx
except httpmorph.Timeout:
    print("Request timed out")
except httpmorph.ConnectionError:
    print("Failed to connect")
except httpmorph.HTTPError as e:
    print(f"HTTP error: {e.response.status_code}")
except httpmorph.RequestException as e:
    print(f"Request failed: {e}")

Platform Support

Platform Status
Windows ✅ Fully supported
macOS (Intel & Apple Silicon) ✅ Fully supported
Linux (x86_64, ARM64) ✅ Fully supported

All platforms use BoringSSL (Google's fork of OpenSSL) for consistent TLS behavior and advanced fingerprinting capabilities.

Building from Source

httpmorph uses BoringSSL (built from source) on all platforms for consistent TLS fingerprinting.

Prerequisites

Windows:

# Install build tools
choco install cmake golang nasm visualstudio2022buildtools -y

# Or install manually:
# - Visual Studio 2019+ (with C++ tools)
# - CMake 3.15+
# - Go 1.18+
# - NASM (for BoringSSL assembly optimizations)

macOS:

# Install dependencies
brew install cmake ninja libnghttp2

Linux:

# Ubuntu/Debian
sudo apt-get install cmake ninja-build libssl-dev pkg-config autoconf automake libtool

# Fedora/RHEL
sudo dnf install cmake ninja-build openssl-devel pkg-config autoconf automake libtool

Build Steps

# 1. Clone the repository
git clone https://github.com/arman-bd/httpmorph.git
cd httpmorph

# 2. Build vendor dependencies (BoringSSL, nghttp2, zlib)
./scripts/setup_vendors.sh  # On Windows: bash scripts/setup_vendors.sh

# 3. Build Python extensions
python setup.py build_ext --inplace

# 4. Install in development mode
pip install -e ".[dev]"

Note: The first build takes 5-10 minutes as it compiles BoringSSL from source. Subsequent builds are much faster (~30 seconds) as the vendor libraries are cached.

Development

# Clone and setup (includes building BoringSSL)
git clone https://github.com/arman-bd/httpmorph.git
cd httpmorph
./scripts/setup_vendors.sh

# Install development dependencies
pip install -e ".[dev]"

# Run tests
pytest tests/ -v

# Run with coverage
pytest tests/ --cov=httpmorph --cov-report=html

# Run specific test markers
pytest tests/ -m "not slow"           # Skip slow tests
pytest tests/ -m "not proxy"          # Skip proxy tests (default in CI)
pytest tests/ -m proxy                # Only proxy tests
pytest tests/ -m integration          # Only integration tests
pytest tests/ -m fingerprint          # Only fingerprinting tests

Architecture

httpmorph combines the best of both worlds:

  • C Core: Low-level HTTP/TLS implementation for maximum performance
  • Python Wrapper: Clean, Pythonic API with requests compatibility
  • BoringSSL: Google's fork of OpenSSL, optimized and battle-tested
  • nghttp2: Standard-compliant HTTP/2 implementation

The library uses Cython to bridge Python and C, providing near-native performance with the ease of Python.

Contributing

Contributions are welcome! Areas where help is especially appreciated:

  • Windows compatibility
  • Additional browser profiles
  • Performance optimizations
  • Documentation improvements
  • Bug reports and fixes

Please open an issue or pull request on GitHub.

Testing

httpmorph has a comprehensive test suite with 350+ tests covering:

  • All HTTP methods and parameters
  • Chrome 127-143 fingerprint validation (JA4, JA4_R)
  • TLS 1.2/1.3 with post-quantum cryptography
  • Certificate compression (Brotli, Zlib)
  • Redirect handling and history
  • Cookie and session management
  • Authentication and SSL
  • Error handling and timeouts
  • Unicode and encoding edge cases
  • Thread safety and memory management
  • Real-world integration tests

Run the test suite:

pytest tests/ -v

Acknowledgments

  • Built on BoringSSL (Google) with post-quantum cryptography support
  • HTTP/2 support via nghttp2
  • Inspired by Python's requests and httpx libraries
  • Chrome 127-143 fingerprint matching with perfect JA4, JA3N, and HTTP/2 Akamai fingerprints
  • Certificate compression (Brotli) for Cloudflare-protected sites

FAQ

Q: Why another HTTP client? A: httpmorph combines the performance of native C with browser fingerprinting capabilities, making it ideal for applications that need both speed and realistic browser behavior.

Q: How accurate are the Chrome fingerprints? A: httpmorph achieves perfect JA4 matches for Chrome 127-143. Test your fingerprint at https://tls.peet.ws/api/all

Q: Is it production-ready? A: No, httpmorph is still in active development and not yet recommended for production use.

Q: Can I use this as a drop-in replacement for requests? A: For most common use cases, yes! We've implemented the most widely-used requests API. Some advanced features may have slight differences.

Q: Does it work with Cloudflare-protected sites? A: Yes! httpmorph supports certificate compression (Brotli) which is required for many Cloudflare-protected sites. We successfully tested with icanhazip.com and postman-echo.com.

Q: How do I report a bug? A: Please open an issue on GitHub with a minimal reproduction example and your environment details (OS, Python version, httpmorph version).

Support

License

MIT License - See LICENSE file for details.

Legal Disclaimer

FOR EDUCATIONAL AND RESEARCH PURPOSES ONLY

This software is provided for educational, research, authorized security testing, and development purposes only.

No Affiliation: This software is not affiliated with, endorsed by, or connected to Google, Chrome, or any browser vendors. All trademarks are property of their respective owners.

User Responsibility: You are solely responsible for your use of this software and any consequences. You must:

  • Obtain proper authorization before testing systems you don't own
  • Comply with all applicable laws, regulations, and terms of service
  • Respect robots.txt and website usage policies
  • NOT use this for illegal, unauthorized, or malicious activities

Prohibited Uses: Do not use this software for bypassing security measures without authorization, violating terms of service, unauthorized access, unauthorized web scraping, circumventing rate limits, fraud, harassment, or any illegal activities.

Disclaimer: The authors disclaim all liability for any damages arising from use or misuse of this software. This software is provided "AS IS" without warranties of any kind. Use at your own risk.

Agreement: By using this software, you agree to these terms. If you disagree, do not use this software.


Use this tool ethically and legally. You assume all risks and responsibilities.

Metadata

Release files for httpmorph 0.2.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for httpmorph 0.2.8
File
httpmorph-0.2.8-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
httpmorph-0.2.8-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
httpmorph-0.2.8-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details
httpmorph-0.2.8-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
httpmorph-0.2.8-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
httpmorph-0.2.8-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
httpmorph-0.2.8-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.24+ ARM64, Linux glibc 2.28+ ARM64 Details
httpmorph-0.2.8-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
httpmorph-0.2.8-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
httpmorph-0.2.8-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
httpmorph-0.2.8-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ ARM64, Linux glibc 2.28+ ARM64 Details
httpmorph-0.2.8-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
httpmorph-0.2.8-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
httpmorph-0.2.8-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
httpmorph-0.2.8-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details
httpmorph-0.2.8-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
httpmorph-0.2.8-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
httpmorph-0.2.8-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
httpmorph-0.2.8-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ ARM64, Linux glibc 2.28+ ARM64 Details
httpmorph-0.2.8-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
httpmorph-0.2.8-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
httpmorph-0.2.8-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
httpmorph-0.2.8-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details
httpmorph-0.2.8-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
httpmorph-0.2.8-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
httpmorph-0.2.8-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
httpmorph-0.2.8-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.24+ ARM64, Linux glibc 2.28+ ARM64 Details
httpmorph-0.2.8-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details

Total release size: 301.1 MB

Release files / httpmorph-0.2.8-cp314-cp314-win_amd64.whl

Download URL httpmorph-0.2.8-cp314-cp314-win_amd64.whl
Size 1.6 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
2100bd55fc862b6d5912c89d19f89b40350681b5a7304a28adce177b7bac6769
BLAKE2b-256 checksum
How to use checksums
05fe317b9e5c39b63698005281076daa9de43231d141d39508803445dbac61b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL httpmorph-0.2.8-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 19.9 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
45b1929749be0fc32b231c70da0ca9749f763f3024b8eb39b645244b42a6942c
BLAKE2b-256 checksum
How to use checksums
de00629a9c65dfd56cce385f26d2990acc591a8eb474d0ce4e2c5ef6c6ceb081
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL httpmorph-0.2.8-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 19.2 MB
Tags CPython 3.14 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
b5a1ac7d6d1313309392be40a1f06995aae791eca6f1570705fa0fe5e1d8c2d8
BLAKE2b-256 checksum
How to use checksums
c7238658aa69e589fbdf4e96248c6fc9549eabbb1c082b0669524c07ed7c5ffa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp314-cp314-macosx_11_0_arm64.whl

Download URL httpmorph-0.2.8-cp314-cp314-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bd96022ca74712abdecf84551b40dd5af81ec069f90a07206e4d842ba77018a1
BLAKE2b-256 checksum
How to use checksums
1011f9e7ab41bc35d40878f8be1ac31b2de1242b416c6c9a2c3f03121bef8cd1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp313-cp313-win_amd64.whl

Download URL httpmorph-0.2.8-cp313-cp313-win_amd64.whl
Size 1.6 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
3bc8b101c4d35609a16c17af9d7e7ea6953157f74604e840df02cf9969f3e5e7
BLAKE2b-256 checksum
How to use checksums
564ae612b13528f30e7a5cefb8d7e61ebe5ec4e3b5324151ebd3de0da0df0835
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL httpmorph-0.2.8-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 19.9 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
037544dc3da9b1eb2ecb25f75e5eafaa5567e6f40e61a628c1f83e6d7349063c
BLAKE2b-256 checksum
How to use checksums
46f735bce99582e95620fde91df94b16689937df1ca7cc0d2165a9a3f4439e2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL httpmorph-0.2.8-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 19.2 MB
Tags CPython 3.13 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e34110e3cf02b176d4227a6e9d17642aa9ac0d55f4561d1ed17b116c25d5f2cf
BLAKE2b-256 checksum
How to use checksums
024e69283255ef5aa087287c6ad2484de1ae5adab43b5fd8d4e5a21cb2c4206b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp313-cp313-macosx_11_0_arm64.whl

Download URL httpmorph-0.2.8-cp313-cp313-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1f0c5ce2e6a542801bec4e14dc76be727aad5c70c0edc8e169f85d1b000e4820
BLAKE2b-256 checksum
How to use checksums
709efadbe26c251e46d40798c8fa07f8ba2e6e020a66b6b7f97ca0642dd6b321
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp312-cp312-win_amd64.whl

Download URL httpmorph-0.2.8-cp312-cp312-win_amd64.whl
Size 1.6 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
9115c9a9ea4e11d6d1c167d372b54bb4f1cc6d4ec50b3e86338b220ffc12d8de
BLAKE2b-256 checksum
How to use checksums
86b14c668935cce9b6b46980cc5f7e4c78d90955c4b4f6e7015ef158b4a6a2c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL httpmorph-0.2.8-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 19.9 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a783b69b1c17b4a4c11bdfbcc6091cb52b803ea6b34f70a7b99db52bf69e1826
BLAKE2b-256 checksum
How to use checksums
38b941c05077f7ed5ba7dd5e45af6e8fdf9fc7c0b3dca2e8fd6e7312f9d431c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL httpmorph-0.2.8-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 19.2 MB
Tags CPython 3.12 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
6bbab2c060b1795b30473279a1cf4d41ead8fb82c3c61029ad6d88bcc399118c
BLAKE2b-256 checksum
How to use checksums
4fdf2c95bf9d0249f5a9a68c9dd98d32858fb0ec5afdc2a1af28709a45527eb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp312-cp312-macosx_11_0_arm64.whl

Download URL httpmorph-0.2.8-cp312-cp312-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f570cc3ca38986e1771b96c9d637c3bea2fcc0dede67f7ee7fc653686bb3b482
BLAKE2b-256 checksum
How to use checksums
72bfb072bc4455ef5886777522e104b3045a270a7b3162ad725a54a4c1dfe6ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp311-cp311-win_amd64.whl

Download URL httpmorph-0.2.8-cp311-cp311-win_amd64.whl
Size 1.6 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
8c88482902ba399ef4e958a994c149b4362d1e66ce49c0fe53b909552a0fa1bb
BLAKE2b-256 checksum
How to use checksums
accb962a77686b6d13dec493b5f7956d5d9c914cdff79a374c7fe8938cbf408c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL httpmorph-0.2.8-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 19.9 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
43a3b61eb29b8ef91a7f0a25b041def75a9ae4ec7caf86f2ea77c7cc49a08e88
BLAKE2b-256 checksum
How to use checksums
c32f928868ecdf59b7c85bb5db185ac300f33e1f7ba01bff37333dda9a3d430a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL httpmorph-0.2.8-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 19.2 MB
Tags CPython 3.11 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ac8230be34848afc8f39d253c5e9dbcc38f109910c6d59a7ad99e1e26e2dad33
BLAKE2b-256 checksum
How to use checksums
8316bc4a9b1b34938c36c53acfa875b0620c22519e3218bdcce5eff355160d5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp311-cp311-macosx_11_0_arm64.whl

Download URL httpmorph-0.2.8-cp311-cp311-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d43bfdec06c81bed222d87a758012d85cd73b5508b53588edf689f1024a5c3dd
BLAKE2b-256 checksum
How to use checksums
da87fb8791d2d9b249a9b1136b4d0a7e558a401697c8ffe516f6247da78f7cc1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp310-cp310-win_amd64.whl

Download URL httpmorph-0.2.8-cp310-cp310-win_amd64.whl
Size 1.6 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
14655cf28dfce9121b30402d412fcfe5306b9f799b38f73c1a06dfad057b340e
BLAKE2b-256 checksum
How to use checksums
385739d78ccf019c015e2542eba5613770214abbbe0db90891c89ff151a6b6f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL httpmorph-0.2.8-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 19.8 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
95002c3648fc5631faa71b6483d9902eaa64fd468c23bf9e01058e95e14238d6
BLAKE2b-256 checksum
How to use checksums
1bad907560cafb8ab2a09e346f23199eeb822dc39c2f6786c34379864d298229
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL httpmorph-0.2.8-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 19.2 MB
Tags CPython 3.10 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2f6e50dac50ee2b74190f9a33d19a7828ac6ad7011f7517dc933e79d76ed0886
BLAKE2b-256 checksum
How to use checksums
d869f791860c93d0f43bd584af01d5e1660a34eeff4fa31f9b50cb7d35beeb8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp310-cp310-macosx_11_0_arm64.whl

Download URL httpmorph-0.2.8-cp310-cp310-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b02da2875c3ff623d32134082fe9f8a4fd27ef92e81c978cb17b330340197399
BLAKE2b-256 checksum
How to use checksums
dd6a6b0bfd8bb82c668a5effba8bf35843107fdef6cb9344d2a030f68335b59b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp39-cp39-win_amd64.whl

Download URL httpmorph-0.2.8-cp39-cp39-win_amd64.whl
Size 1.6 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
38516df6c14f3af851208b9eaf9120bab35b50fecbe8a341f411ca616b6fd659
BLAKE2b-256 checksum
How to use checksums
963a72aa944a87261ba3c2dc19ab6d78c0681c91b14203af15456b1e87a61bf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL httpmorph-0.2.8-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 19.8 MB
Tags CPython 3.9 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a4417b3dc5a92fd05a3ff2d2f672937f263a3bfdc14181eac65fdf696ae1e920
BLAKE2b-256 checksum
How to use checksums
8cf2788ec3f26666e9ee773aa1fc635810626337147a73b4fd5935aacdc1f7ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL httpmorph-0.2.8-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 19.2 MB
Tags CPython 3.9 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
87e8d99dc4e6b8bda0a1e5040ac27adb22d526e690675cdf9b64c6917c0a46db
BLAKE2b-256 checksum
How to use checksums
06de74ab1bf5e050a55f06609428a1b7b0df7237f097e2f8812c21278b61f47a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp39-cp39-macosx_11_0_arm64.whl

Download URL httpmorph-0.2.8-cp39-cp39-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
28457d6da442118ec4c5ef7d1f5cb2b82be575e397d321250e1a844b6149cf09
BLAKE2b-256 checksum
How to use checksums
06f842fc506722a372fef86ffb7ce559b8e2fa356a143431695968f39e3e1dbc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp38-cp38-win_amd64.whl

Download URL httpmorph-0.2.8-cp38-cp38-win_amd64.whl
Size 1.6 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
a09dc0e1c1d95a18e1aa94d49669d1d798fb438ffff4cb16dd50cdbb0627c423
BLAKE2b-256 checksum
How to use checksums
999ad02f261c10a2373ef9dee4ed03707863f4e10c398d228df00228aa1ffdb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL httpmorph-0.2.8-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 19.9 MB
Tags CPython 3.8 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ab3d8a59804cecf6d54531e41b144256e0b3fde4dcbc7d8c4e710ac0e44cbb44
BLAKE2b-256 checksum
How to use checksums
a836acf8dd96751e8b559bb19639977f6d7f4183d3d2d222db1e1d584c7b56cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL httpmorph-0.2.8-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 19.2 MB
Tags CPython 3.8 Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
efba612cef897f7ec1515f407a54197448afbe2b384b1218d3496efcf022bfa1
BLAKE2b-256 checksum
How to use checksums
dda9cb9db4f925953111caf7d7c975c8970c47ef643c70a4defdad3e8e88ff0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / httpmorph-0.2.8-cp38-cp38-macosx_11_0_arm64.whl

Download URL httpmorph-0.2.8-cp38-cp38-macosx_11_0_arm64.whl
Size 2.3 MB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e9e54c1966032d31b1fa259f246b92de0da42be9d80ed47db3dc6be4c8e486e3
BLAKE2b-256 checksum
How to use checksums
bad25f470060da23ed9fbffe2f73bcc4dc2f3565a8932e9738a37afb35dfab6d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.2.8 This release

28 release files

0.2.7

28 release files

0.2.6

28 release files

0.2.5

18 release files

0.2.0

6 release files

0.1.2

18 release files

0.1.0

18 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page