--- id: wreq version: "0.12.1" license: Apache-2.0 license_treatment: permissive maintenance: active --- # wreq — An ergonomic Python HTTP Client with TLS fingerprint License: permissive · Maintenance: active · Downloads: 299.8K/mo ## What it is and what it does wreq is a Python HTTP client built on Rust bindings to BoringSSL, designed for high-fidelity protocol matching and browser fingerprint emulation. It provides both async and blocking APIs with support for HTTP/2, custom TLS configuration, and browser emulation profiles—useful for scenarios where standard HTTP clients are detected or blocked by anti-bot systems. The library handles connection pooling, streaming transfers, WebSocket upgrades, automatic decompression, and certificate management. The package targets developers building web scrapers, API clients, or tools that need to mimic specific browser behavior or avoid detection. It trades some complexity for fine-grained control over TLS and HTTP/2 parameters, rather than relying on simple fingerprint strings. Zero runtime dependencies simplify deployment, though the compiled Rust component requires Python 3.11+ and platform-specific wheels. Use it for: - Building web scrapers that need to bypass anti-bot detection by emulating specific browser TLS and HTTP/2 signatures. - Automating API interactions where the server enforces strict browser fingerprint validation. - Testing HTTP/2 and TLS protocol handling in applications by emulating different browser profiles. - Developing tools that require WebSocket support combined with custom TLS configuration. - Creating high-performance HTTP clients for data collection where connection pooling and streaming matter. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. An HTTP client library for Python with customizable TLS and HTTP/2 fingerprinting, supporting both async and blocking APIs, browser emulation profiles, and features like connection pooling, streaming, and WebSocket upgrades. Yes, if you need browser fingerprint emulation or custom TLS control for HTTP requests. The library is actively maintained, has no known vulnerabilities, and offers a permissive license. Install friction is moderate due to compiled dependencies, but pre-built wheels cover most platforms. Not necessary for standard HTTP tasks where requests or httpx suffice. ## Install pip install wreq uv add wreq poetry add wreq ## Installing wreq Before you install: Medium install friction due to compiled Rust bindings and BoringSSL dependency. Pre-built wheels cover most platforms (Linux glibc/musl, macOS, Windows, Android) but require Python 3.11+. Active maintenance with recent releases. License in practice: Licensed under Apache License 2.0 (permissive), allowing commercial and private use with minimal restrictions—suitable for most projects. Quickstart: pip install wreq import asyncio from wreq import Client, Emulation async def main(): client = Client(emulation=Emulation.Chrome149) resp = await client.get("https://example.com") print(await resp.text()) asyncio.run(main()) Requires Python 3.11 or later. Pre-built wheels available for common platforms; building from source requires BoringSSL build environment (CMake, Rust, Clang). Verify before relying: - Whether the 100+ browser device emulation profiles are actively maintained and updated for new browser versions. - Performance benchmark methodology and whether comparisons to requests, httpx, aiohttp, curl_cffi remain current. - Stability and API compatibility guarantees given the active development status and recent release cycle. ## Package facts - License: Apache-2.0 (permissive) - Python support: supports_current - Install friction: medium - Maintenance: active - Downloads: 299.8K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags HTTP client TLS fingerprinting, JA3 JA4 browser emulation, async HTTP client Python, HTTP/2 protocol matching, web scraping HTTP client, custom TLS cipher suites, anti-bot HTTP client, tls-fingerprinting, anti-bot, async-http [View on SkillFed](https://skillfed.io/packages/wreq) · [View on PyPI](https://pypi.org/project/wreq/)