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.7-cp314-cp314-win_amd64.whl (1.6 MB view details)

Uploaded CPython 3.14Windows x86-64

httpmorph-0.2.7-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.7-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.7-cp314-cp314-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

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

Uploaded CPython 3.13Windows x86-64

httpmorph-0.2.7-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.7-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.7-cp313-cp313-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

httpmorph-0.2.7-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.7-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.7-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

httpmorph-0.2.7-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.7-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.7-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

httpmorph-0.2.7-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.7-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.7-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

httpmorph-0.2.7-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.7-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.7-cp39-cp39-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

httpmorph-0.2.7-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.7-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.7-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.7-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: httpmorph-0.2.7-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.7-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 517f18271f65d4f5120bbf57ce510df5224af68184bed34d069b6546a4fd06b1
MD5 bf5d513414a81c40b94e81fa9c775101
BLAKE2b-256 a4baf31a05eb111e31aa974ef590271e5477a9cf64599a9fe3d10036cddbf705

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72c3531c1f5322234ade13b0dff256f7cefe722ded9e5f0d7797503e7d03f7eb
MD5 d0fe65f0bea6692a88c8291f7ff4a02e
BLAKE2b-256 00c5869d1070dc4d611780e7a45acedc8d414457ba47240106c5b27fde4f2652

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 090e0529a663aa5973ae7327e1cc64ffaf0ada456f15779017f941b32640f8ea
MD5 a4f013175e700d389e5770e6fe6a1b77
BLAKE2b-256 cf10aa0517eacb54f342d0be0154980218ac14f195e17a7d8557897e872418d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dbb5f46a1e9b54741d3e267776dde2e6c9ad77b8fff929d60ebae7047f56b728
MD5 da4879a57f970afd0eedfac11c2912da
BLAKE2b-256 23f91eb48096c63c6fa307c1b9513a0964f6064db957744b21f3965006fc6204

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpmorph-0.2.7-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.7-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 51f6fc8c3aab886206ce7dc855a9ab588eb0ae257b50b486b3a0a2e42eb60154
MD5 5ab10b11ba991d5a6543ef9d6a469728
BLAKE2b-256 a5f86b98231ed930bd0d51428ed7ed2469f5b6b16db3baa6f83fae815adf9f78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e7f44b134ca939c8cd944cd899244dbb4348dc09fe12a53d6ca81bc43489a102
MD5 16909421cafb5ceb38dbdc5a7b625b07
BLAKE2b-256 45ea9b6d74519593cb85d40ac5bd3ae77cfc3d90a9a1b434fe186b3e67045fd9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3f24bfb816f2899d869aa3a6576fbaa08fd58b63df104bda1463d5631a59fdeb
MD5 58fbe191eece4d570c95b2b1383f2ae0
BLAKE2b-256 898e543334f86500a6f9dbcfba9578e4b6b0c4e57013a878cf0eabc7cccac4ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 450e2a9b7eefcd926556b6a7b077b5105561b79c485096217e2ee2a74a4b3652
MD5 563e1bd34aa3755c15678386e156264c
BLAKE2b-256 d72b2c0117160c05bcaa90ece21a6deab7f0d10838229038aba1dab25f813903

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpmorph-0.2.7-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.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2658efff0eb21ceb379f85460bae1658746685372bf38a262bde5aa05ed19f38
MD5 80d80d886e0b86d5f4f7b3d8002a22cc
BLAKE2b-256 0113d8b34091940508fd9d3eddcefc6cfe0306f3864c12e1f5d42f3e3372bc88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1f31c0ea24a3bb12c0b91036f8ee5d152cebe0a5948a978a2bdaeac43d343749
MD5 1c0efcaa733f8c3e3baa46a0b2219e80
BLAKE2b-256 7433501bbceedc741730faf96451fe3378a820ac9d36f0a1a091b796510d7472

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 84591c43575b7548f4fbc8f0fd2fce9499d785bf38003e4a074f136d7f8d0ac6
MD5 b29f38e94642c4fc9944115b2e26ac37
BLAKE2b-256 9b988ab29e10001e47a21a595947a54b1192ed58e31c55213faceedd43125ef6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6517d8773671bd80c32c37380ca201fbd14f4d633a475c622f4327b64ad4f594
MD5 37fdb2530e126276417a4fc3e351835f
BLAKE2b-256 32bde2314dc3ac177087e839f4dc68d7a577712ec4a761a222753b43d3ba6530

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpmorph-0.2.7-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.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f4c1a75b8e41ce21f51eba557dd24ed9f37f926f66a086ed1df31b1fcf08164c
MD5 325ef424ec1cf82517d84c605a51272e
BLAKE2b-256 0856680fa2ae4464e6cc58b0140b02e01533425306f9d9f871884014a58b706e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 94236fbff0248d4a47f16861ed1ed1c1f48dd2701520054ae730a10e4ad9340a
MD5 f1aa536ab93db70eab3339574dcb6978
BLAKE2b-256 d3ffe9c05bb9a24ab70931c628d0e7675ff9db1e585fb0b1a4b1737ac852edfe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eb7ffc3bc7103b5f9ee2ba5c1b8b0d334c4ff27641f4ea0c23a4b498ccde1a72
MD5 dcc2de3a3af6f8ca67b24e53083346d1
BLAKE2b-256 326e977d29a34802ca0d35d958791beac1478b2c9955d2b1c6da2fa14dd2844c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c25c75f69c8289c3ffe980b5151d470ec0d38534b4b3c7ddf4aeb264a5b7a9f7
MD5 6dd20f15c214c29a31593796e9b5f562
BLAKE2b-256 649f4d7824593a4270270eec9f0685523fb583c610882801dfa53dda7e708264

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpmorph-0.2.7-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.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 322137b7f61c3ed6c5367515b36ae3c5cbbc032abb24850637ad99860db65741
MD5 a95a3f5c14a2b96b11a67c51157b2467
BLAKE2b-256 e32c23d39457ca37dd5004bb0088f05eeaa617dfc4184f88fe8eac47ad85ae61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ebf4211aad386a30eaa428676e32cfe02ad82d6f83da415f0f0a5a73d3b56ba7
MD5 dc4a2d73de6978b396bcfc1c33887703
BLAKE2b-256 5070791eb06181ad8020fd268229f92c45c841de854b67c933c0674bae11de78

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 cbd8fb0be1650ca408d3a7690c2c825d6d048a44a85387966a33b5dc73354cb0
MD5 9c41f847fe8e0e5b47e01e59bfe07bb2
BLAKE2b-256 dc53f6cca105eb53210dfe0c3a40684237f62627c9f0d9219f21b4aa0d091661

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e2908e71e8654d3656311df3bc6b7209f33f439f80216d648010029d20e0e349
MD5 61df52e8d44699991ba4a7b03407c9ae
BLAKE2b-256 034275d83f770040e50512a69ed290e20e77e6b725ea63df54f62add5d02d9ce

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpmorph-0.2.7-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.7-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8cd38b46ed691d691020b64388822d2d36c314fd5517b1f1f75dd1ca277a711d
MD5 36c562f0839e44bfc8fa7e442f094dfe
BLAKE2b-256 bfb87313ea850ed9cd922a5756546374c7bc79805c503f22bbc3843a98c466d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 51f5778b1f6b726b0fb5703878e53e0d1b2b7465157ce234ce3003d23691a4a7
MD5 3eb8af10636041be271d3762a9111089
BLAKE2b-256 16e34209f69e7c99419460ebdca51a33e6f31c269ea56bd4ea21e6094d809714

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4a3472a0caa8fb0cccb20dccbb3693ed825f4db15d877f6cc1c444030b700247
MD5 3f37600f1f5916f9e0974a0fd29ea540
BLAKE2b-256 9f4502a334f1d9f5ae938f14421a81e9e188e9f857f9b9cf72cfb9e193b79d4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98736c7cc5cadc9d03274bae44d603bf46e19050f2d48898d7b71e281c33e7c7
MD5 471b136518abdabcd4b0b965bd1106ee
BLAKE2b-256 2536c22eeaf4fb900ee1cf4992814d7d54dcb461bd5d41ef142f8ac684132f36

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpmorph-0.2.7-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.7-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 47f0040bdcc31f65e4533e27af08ee85e92881816ea860e4b2240978dca34014
MD5 c5b1e8312c2db385e2a6105748aea64c
BLAKE2b-256 4b868ebce8afe50b42d44902e5db79ac6000eec75fc80a55e1ec16c2982de84a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 88f4ff31e464230da8fe5cada531b876fbcb3e6c78bfbe566167bc18de84adbf
MD5 5ea551b22b771007442302479b23d215
BLAKE2b-256 00de27f303df11125eb6d691121afdb38ac74bf1dd7eb51a1d0776d11e93f347

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c33823f6df878c44f081b093788acf918db43886a8d57982882ff37e3bfb0b50
MD5 ccc30029e1620764e12e7dcdbbc3a61c
BLAKE2b-256 defb6868bb6ba3cd0f0e0f24b6f209dc9a0e8639e9da6874bb828584f7dfeb7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.7-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c4946a65bcf68c09fd270db0b78b7ee0e7a4ef7bdc3719c1faaf181c23cc2a8
MD5 31ca842994f26fec7048d8458ec06e5e
BLAKE2b-256 42b917b0629eb08e9663e71ba30045ebd34bd8146201cc2005b457886ea61639

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