Skip to main content

A Python HTTP client focused on mimicking browser fingerprints.

Project description

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 142 Fingerprint - Perfect JA3N, JA4, and JA4_R matching
  • Browser Fingerprinting - Realistic Chrome 142 browser profile
  • TLS Fingerprinting - JA3/JA3N/JA4 fingerprint generation with post-quantum crypto
  • 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 142)
response = httpmorph.get('https://example.com', browser='chrome')

# Use specific Chrome version
session = httpmorph.Session(browser='chrome142')
response = session.get('https://example.com')

# Available browsers: chrome, chrome142

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 142 Fingerprint Matching

httpmorph accurately mimics Chrome 142 TLS fingerprints with:

  • JA3N ✅ Perfect match
  • JA4 ✅ Perfect match
  • JA4_R ✅ Perfect match
  • User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
  • TLS 1.3 with correct cipher suites and extensions
  • HTTP/2 with Chrome-specific SETTINGS frame
  • Post-quantum cryptography (X25519MLKEM768)
  • Certificate compression (Brotli, Zlib)

Verify your fingerprint:

import httpmorph

# Make a request to fingerprint checker
response = httpmorph.get('https://suip.biz/?act=ja4', browser='chrome142')
print(response.text)

# You should see perfect matches for:
# - JA4 fingerprint ✅
# - JA3N fingerprint ✅
# - User-Agent: Chrome/142.0.0.0 ✅

httpmorph achieves perfect matches for all modern fingerprints including JA3N, JA4, and JA4_R when tested against real Chrome 142 browsers.

Advanced Usage

HTTP/2 Support

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

# Enable HTTP/2 for a client (default is False)
client = httpmorph.Client(http2=True)
response = client.get('https://www.google.com')
print(response.http_version)  # '2.0'

# Enable HTTP/2 for a session
session = httpmorph.Session(browser='chrome', http2=True)
response = session.get('https://www.google.com')
print(response.http_version)  # '2.0'

# Per-request HTTP/2 override
client = httpmorph.Client(http2=False)  # Default disabled
response = client.get('https://www.google.com', http2=True)  # Enable 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 142 fingerprint validation (JA3N, 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 142 fingerprint matching with perfect JA3N, JA4, and JA4_R matches
  • Certificate compression support 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 is the Chrome 142 fingerprint? A: httpmorph achieves perfect matches for modern fingerprints including JA3N, JA4, and JA4_R. This is verified against real Chrome 142 browsers. Test your fingerprint at https://suip.biz/?act=ja4

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, Zlib) 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

httpmorph-0.2.6-cp314-cp314-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.14Windows x86-64

httpmorph-0.2.6-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (19.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

httpmorph-0.2.6-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (19.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

httpmorph-0.2.6-cp314-cp314-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

httpmorph-0.2.6-cp313-cp313-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.13Windows x86-64

httpmorph-0.2.6-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (19.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

httpmorph-0.2.6-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (19.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

httpmorph-0.2.6-cp313-cp313-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

httpmorph-0.2.6-cp312-cp312-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.12Windows x86-64

httpmorph-0.2.6-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (19.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

httpmorph-0.2.6-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (19.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

httpmorph-0.2.6-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

httpmorph-0.2.6-cp311-cp311-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.11Windows x86-64

httpmorph-0.2.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (19.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

httpmorph-0.2.6-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (19.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

httpmorph-0.2.6-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

httpmorph-0.2.6-cp310-cp310-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.10Windows x86-64

httpmorph-0.2.6-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (19.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

httpmorph-0.2.6-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (19.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

httpmorph-0.2.6-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

httpmorph-0.2.6-cp39-cp39-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.9Windows x86-64

httpmorph-0.2.6-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (19.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

httpmorph-0.2.6-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (19.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

httpmorph-0.2.6-cp39-cp39-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

httpmorph-0.2.6-cp38-cp38-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.8Windows x86-64

httpmorph-0.2.6-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (19.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

httpmorph-0.2.6-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (19.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

httpmorph-0.2.6-cp38-cp38-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

Details for the file httpmorph-0.2.6-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: httpmorph-0.2.6-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for httpmorph-0.2.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 50d6e30d356e817a2eaff298b323d2bf1857326052c7011fe808137b2fef5c20
MD5 b0f14ab418efc037aa9c67dcd76b4d0d
BLAKE2b-256 684b3b6de59ffe4236d4af97b1049f99f9ddcf91a934423f2a559cbf240ba5b2

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4dd93b2fe08ca6d0566fbaee77a143e5e6443c8c1aeac3664a99252cb615910f
MD5 bceeb974f18d6590e1de5032de0283b7
BLAKE2b-256 5ed5e53f6ab0dabfc573d85d0716f442982968aed8c90e925f8a0c8091716ba9

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4c9b40634ac492a9e147344bd7106aa54499fe0f000b06ea6277bf934276125a
MD5 1a5f26a39d88ce192bc2c9c79ff42343
BLAKE2b-256 8be29e6320e4c5e77cffa25f858768ecf20552104c418bc8a5a03b7891d1e786

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 694ecbc4ab21daceae0d3f92ce1d723f1ddc48630a264b5e0e770c38bec87105
MD5 d8b44c48fd2537be21af72f9722a4b8f
BLAKE2b-256 eeef2c1c6d7314d5f154d8bfbcad07501321deba9175419803790e992556eb11

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: httpmorph-0.2.6-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for httpmorph-0.2.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ce0806323479fb265145a97286d5e1d5d2c9737950d74394caf887b81899943c
MD5 aaf47f24d41d7f2968aeed619726087e
BLAKE2b-256 09c0b24f8acf074e49d68017351b688c99e7ac98fb7a87d573007ba3209ca699

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9c0c4ca48188592737e5c1752018377d24dd9463fb836f34864e4e7a6665332a
MD5 1cd70ad1a7da7a84ddb55a830a8cf179
BLAKE2b-256 15af4988f9a87d19b4a54b1e65bf8468f4f468682b1e093168729c648436a8f9

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9995180e2492db2279c76329cc89f3f4a7f51a39f7483458a22e95cbc7c76490
MD5 d793e1c858d97ee6e78828da4f40e0e1
BLAKE2b-256 c9a92d705df4ae5000f8331e0e3688e8412f2896359f6be9eb5c202498f1c610

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f82975b58527e46e4986e9dce1472cd5e815fc19150df7822dc6d85227af9e95
MD5 90f84461dd7437cb9872cc40b05be4b0
BLAKE2b-256 eea6ec9638f9ad5ee672b116bd13012a5feeb28e1441ff2269a407b1d90aaf50

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: httpmorph-0.2.6-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for httpmorph-0.2.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 46076a5c1bd827393873465ea8d9ddae78b49083af518ae164909ea8538a83ac
MD5 13d8e42d4e8ee5e24faa6bfc323b12eb
BLAKE2b-256 d14bb8130c6336e2385794b10941a597860a3296da4b3673b3e25e4a72cb92e1

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 331d6003c4d3e58849ad3d4e8ed9d4cb952f74b13fe2aa1481145b84aa8305bf
MD5 289c01df327e1936a17a64456d7e39d1
BLAKE2b-256 08e9759ef38c8682f79f3cbeb32917cf8a483472c997149982355dad3e12f0ad

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 23c394e2d93b65412ab527d94ac19f9710a9848cd812431d988effb66365aeb3
MD5 8ae4ee330d2478426de678f786d2aa1b
BLAKE2b-256 c163e1224151a3819d68f34782f784290ebe69aa266d5fb167f0ae477a2da746

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 17a3470925266b1eca31ddd5f912a091a1a6943c6507704a032a3a8d086ee4d5
MD5 98485d36d392d9956e8cec471cc5a99d
BLAKE2b-256 1ac71409cca645ec96fedc1d919fb3f87e41c9e99e305f1b6bf402f8082ed18d

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: httpmorph-0.2.6-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for httpmorph-0.2.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6912fdbefd01bbfef7416edc029572ae807ad6517dcf4141fa0620281e93bcc7
MD5 042e688c5465018339bffc8c15561a2f
BLAKE2b-256 e0320d6594f9bb5c6e7742660d541d502b9eb1de49df11862c50d99307153f76

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3bad1f3475dff21e15b92f615173b1a82e518767e32d789e6f210d1b25e92295
MD5 c27069e25cd35ab70e122f3295f42271
BLAKE2b-256 d5bd3cbe72521793478537878544ed81e9af49574ea71860bdfef0189539b7a6

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 58e4c179b473ce9fd042b3d8cc141cc269fbcac447c85f211eb5c9e67d809da0
MD5 08a2605465a0be3d79442aeda8acaaff
BLAKE2b-256 537ef10d6aa6ff8466555481f5c1fcf9f96925d75e54649933fa186e0856f3bb

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 203114af5573d5e4bbc1745146a2009a1c4181c4b9de765566cd7da9d23636ec
MD5 43589681505bfb9259500a7d016081e1
BLAKE2b-256 f9a46a9099fad72e0c1ae3fd75ded10f2ef30ec8c0329dc5f13316824dde42e5

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: httpmorph-0.2.6-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for httpmorph-0.2.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0023a735d67b8eab75a618794c0382a70f260ddf0c522e4a9ef37b4c9c59b54e
MD5 26d4c1151f7d730694a4351e0721c4d3
BLAKE2b-256 f4e44ff81199fe3c4b01d538521d576d0849c065a09623b16c2e849a9a3d2122

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b7c44cc99c3941b30ac08cdc52ed49d6cd303459d04354fa6d8354d5fbfbbfc7
MD5 f72e79fda446205a7ff2e4764ba6f8b3
BLAKE2b-256 8dd739366f0476c13fa3f42e66a621dce5830281be15b762ed16009be8af11e4

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b01c4be63eaf62c88d69dbbe323f0a82d39589eebfba801c0e958aca4fac70d5
MD5 8594d5181d739fe88933f645397d787a
BLAKE2b-256 2fae87157892e59ba6e8a3aa36b219c6f7c6c04392227a7c3c4e74cc26b5be76

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 62a2d6fa9aaf1103a5863d14580b88dad05b6c3a05ffdaa62b1461d3d1563da1
MD5 93cb49a4a856ea1c9b38675c84bbc78b
BLAKE2b-256 3434f6cb086e9d99a15211b74831a9787cccd71faaa8b243b263c1ec40c09c0a

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: httpmorph-0.2.6-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for httpmorph-0.2.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c449a5739cd1a3f9549dc914b24de0973d058d08fa29eacd24547bcecc71abed
MD5 cbe08f15709a8329e0bb1ecb4ebdf0f1
BLAKE2b-256 3dc140f2d1b879e3e69b266aa64909e8fc2887a8dedac854ff5f203ea783c390

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8b2421778c55c442b026f8ff75eed2798f3240a8339316334a0364e2b7a966d9
MD5 68745b01ac4c6acef29b5d61d41c2d8d
BLAKE2b-256 35f3bc5aa9dc6556e8cde931a94dd5612324e40888714ea05cc8bbd033594028

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9a397be5dbd1c3b92bdabc30f2cf4d7b45e2a07c4e0368b73e598ca638c3a312
MD5 d27426a6c63da160ef4c5629ce1ff8ab
BLAKE2b-256 6ae970febb004c584dd7014a2085d6151620d52157ffe9d3a6f2b3a436891a5f

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e520ddd0c9d8d6936c2fa7deae764bea4261af8dea00ad91b41e684242192d54
MD5 dbfd9a809253516d5072808ba9c37edd
BLAKE2b-256 ea0db0ae64c8644f12e3ec21c168ed25ae56b704a5e71dbbaded8cc69f86a36b

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: httpmorph-0.2.6-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.6 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for httpmorph-0.2.6-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 22464b9b4eee5657eacf1851c645a8719d2e4685dca56624cfb31d28c2f0aea7
MD5 b7e442d498cdda26cd19a48c82f3369c
BLAKE2b-256 474e41f9335afe4d2d399e9cf529cd123a7c4e7378be5202cbceb2a8da2e8eb7

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 40cbd19aad8a34c8b84fb880e3cf59503be08bf6f7ef3dfeb0c204ebb8c85257
MD5 18d5814700046e17815c6b9af12f322f
BLAKE2b-256 64118f491db9f0c8612e38285079f8c6bf4a127cb2492b8a09e550f48b5b5a9b

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 dccfac8d95e25a82f07b239662f9797ec22820ceef4371d5fc25d21e1a10970c
MD5 673310866a335900471ebafb553eb01a
BLAKE2b-256 2d1edd5b76a2830f52d6a921855d484fadc928dd67259317f7c602e0a35a0587

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.6-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.6-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 823f7bc5e45913950dcf387ddad18b6eaad859dddacc0c035a62e9b4958d1d00
MD5 04a64c1b0a0d0b3a33b8a31ddcda9d1d
BLAKE2b-256 3eae3d9af4364ee34a012c7c7e50d38bac68f486834033abf803057c7e8b4769

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page