Skip to main content

A Python HTTP client focused on mimicking browser fingerprints.

Project description

httpmorph

Build codecov PyPI version License: MIT

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

Requirements

  • Python 3.8+
  • Windows, macOS, or Linux
  • BoringSSL (built automatically from source)
  • libnghttp2 (for HTTP/2)

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

Uploaded CPython 3.13Windows x86-64

httpmorph-0.2.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

httpmorph-0.2.5-cp313-cp313-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

httpmorph-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

httpmorph-0.2.5-cp312-cp312-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

httpmorph-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

httpmorph-0.2.5-cp311-cp311-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

httpmorph-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

httpmorph-0.2.5-cp310-cp310-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

httpmorph-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

httpmorph-0.2.5-cp39-cp39-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

httpmorph-0.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

httpmorph-0.2.5-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.5-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: httpmorph-0.2.5-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.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 50e5c63d5c4a5b930f0f7ebfdb7afc68bf70fddb86c66303221dd5e126d3b0c3
MD5 4cb30649c3ee5b7e4c9bc4027c5a7238
BLAKE2b-256 c51d57ba0b8c0bb6af3924a347fab64a7b925ce63ee3e21a390853fe588ece8d

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c79d583666b3faba54d6c84302af025f217b93931a4f57443c27e21dbd299008
MD5 a86b595554e345181f190bca4e3be96b
BLAKE2b-256 951553b249fe063ee314c5a7ddd949e500fa799682c771ea8e7b95e9105229c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ecfe19d8bb1e0f9ee407372317f45eaf943450ebf3680af74851ae1dbd38f471
MD5 683ff67ae559c4700fb9b3ac45637e3a
BLAKE2b-256 2d7391d15c1e16fa918921fd4250b0cdd0f6ab70960f6c2c4f0e993964913675

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpmorph-0.2.5-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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 32912f110c7a9b4c704db7035118e2e917569ab100cadd950cd6025b0e98e0eb
MD5 6a5091451928a4118cb574ce315bf89c
BLAKE2b-256 f935eecc38ad11955501ea469a34d76b0f8ca6ac0710b4f5c9aa3950dcb42fbb

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4ed3c2fbd8230fb2d3c3c18eceeaf8888914f0637a2fdbc509813c47bc55f474
MD5 ec71793b187fa27352a2594cadce5093
BLAKE2b-256 448d837b8a06040a5daab645b239fab9374ccb5fe57ab8d3c73e98fd333568f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2b89c2ff35c2542dc55935caafbd65440ec2a5a041e225a7858a9baa748e3b60
MD5 0fe65c8e82282952c4a3c70e76b19950
BLAKE2b-256 199acee5578810ced58b6921a4a29754fda741619afacf2202cc1875811749ed

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpmorph-0.2.5-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.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2824af43b99e305937417cb04ac36cbc8a8319d3632a0a1b45d8381433781c1e
MD5 27a2b4718450e6d04bce079022f8de47
BLAKE2b-256 361aced43d2396ce5fb6d99921f67b59b1b37193c61058a2cccd90dbd7af2c6e

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0a6024a5e2d11119f145e1fa28928eb7653305f2c71bdf60562db05e446ef087
MD5 73ea04f49b4018ec6697979c6d5a188d
BLAKE2b-256 5ed7de2e9a09fa45ef4a58417e80e938e3cb3c531a1281f2bd8797330171a112

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 75f8899a20455f30c1234d8c16317e154cfeb0267a8eaf4030a398dbb012f4b0
MD5 61f356740062385a68cf1c092e469237
BLAKE2b-256 0ee4725aea7aef12663cbc0b31538aeae0d27e5e819b2b3b474af0d9d3135bbe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpmorph-0.2.5-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.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9d0cd0eb12f9f283b3d96af8bd466b94e7165ef798a3bc65744526f18e9c6a95
MD5 a9c83cdf8ed2288ec67f00f52e063b5f
BLAKE2b-256 717cf20d14dc223e5b4c61086d9296ca4340dc446335ecf769c92ceacb5d674a

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 463b40ec80a69878d537d8f90830540f759d5187cc3f1641cb849454a5e64fb9
MD5 ee34070012c9b5eab5dd2af1b33b3788
BLAKE2b-256 0226ca7f882aca028da42a028bcc52af3c0fcdfcd20da3282eb0cef3d40e90a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 af8d6131b0d44799d46cb7cc305383c45aff8cc036347abf4a99b95223ece5a7
MD5 8444eebdbbe7963863acaa241c6f77da
BLAKE2b-256 c80a51af95277b44b96ea401316d397aae0d519eb8805ce7497a437b18752b11

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpmorph-0.2.5-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.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f6f48157c7a3da0dfbed043b9d28bfa00792e8fff28b84816904fa25050659ba
MD5 451aea4da972825117a00ca15ae83d71
BLAKE2b-256 1ea9c7407bdc84caf4294c713de9a1e86e60435eee8f40d9fdc17fbf7fc39ee5

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec0f8a126324ec30e3f5385bbf722ea00a9d3be65cdd1528794f19ea051ca097
MD5 e25b1e0aa8ff8ef273a406f0db54bc3a
BLAKE2b-256 573fb8f3443725b8a00312413de1e12aecde22c40179f1579a15431f8531cd21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5db977a92d8e54e04f5abc4c7e88c5008650510e9d0a085515904738786034fc
MD5 ba54bf20ce7a82f6a25eb0af07dd3103
BLAKE2b-256 43754cfd78f07d3ac3a1e1eec2f0f12f2df3af9f01bdfb31c4efc7db4f9cc8b6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: httpmorph-0.2.5-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.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9702ac7aff9cf08186c3eb086d9bbdebca74bfa5cf67dfa1b30ae9cf1e81cfff
MD5 2d7c1db6c4a3e3f9864d888936f0714f
BLAKE2b-256 b7ac2151ee676ea5b34d63f26e306220dc0214cfa80197e49cc49b9241613866

See more details on using hashes here.

File details

Details for the file httpmorph-0.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9af382822a2bbedd7dd7c8f3bcb284b9b90bff29026f2140b589d256a9af310c
MD5 866d0773d25e9db566c497442e7310b9
BLAKE2b-256 02a6e31730ba1260460fc7c636f8a9faa5245855df2211af8af92f801ecb89de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for httpmorph-0.2.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e17e0f95becca2ad297689b32c4c52984ec7031190e8f28ef7b90654e69da54
MD5 77f0c34243fa53dd1c219080d67c4b88
BLAKE2b-256 b86ea810ce1d55b6c9ad3172d5b5060cd2ca06ed2f444b18158c376511fe9d87

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