wafer-py
Anti-detection HTTP client for Python
What it is and what it does
wafer-py is an HTTP client built on wreq (a Rust + BoringSSL library) designed to evade bot detection and WAF challenges. It handles TLS fingerprinting to mimic browser identities, detects and solves common WAF challenges, manages cookies with RFC 6265 scoping, retries failed requests with backoff, enforces rate limiting per hostname, and supports proxies and DNS pinning. It offers both synchronous and asynchronous session APIs, plus one-shot module-level convenience functions.
The package is explicitly experimental and not recommended for production. It targets developers building web scrapers, API clients, or tools that need to work around anti-bot protections. Responses expose a requests/httpx-compatible interface with metadata on retries, rotations, challenge types, and whether the body is a client-rendered shell. Configuration covers timeouts, retry limits, fingerprint pools, embed mode for iframe/XHR impersonation, and optional browser-based challenge solving.
Use it for:
- Scrape websites protected by Cloudflare, AWS WAF, or other bot-detection layers without triggering blocks.
- Build a resilient API client that automatically rotates TLS fingerprints and solves WAF challenges on 403 responses.
- Test web applications' anti-bot defenses by simulating diverse browser fingerprints and handling challenge flows.
- Fetch data from sites that require cookie persistence and rate-limit compliance across multiple requests.
- Embed HTTP requests in iframe or XHR contexts to impersonate browser-initiated traffic.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
An anti-detection HTTP client that handles TLS fingerprinting, WAF challenge detection and solving, cookie caching, retries, rate limiting, and proxy support to bypass bot detection on protected websites.
Yes, with conditions. Install if you need to bypass WAF detection and accept the experimental status—the package is actively maintained, has no known vulnerabilities, and low install friction. Do not install for production systems without thorough testing; the authors explicitly warn against production use and expect breaking changes. Suitable for development, testing, and research on protected endpoints.
Install
wafer-py on PyPI
pip
pip install wafer-pyuv
uv add wafer-pypoetry
poetry add wafer-pyInstalling wafer-py
Before you install
Low install friction—a pure Python wheel with a single runtime dependency (wreq). Actively maintained with a recent release (4 days old) and no known vulnerabilities, though the project explicitly states it is experimental and not intended for production use.
License in practice
Apache-2.0 (permissive): you can use, modify, and distribute this package freely in commercial and private projects, provided you include a copy of the license and note any changes you make.
Quickstart
pip install wafer-py
import wafer
resp = wafer.get("https://example.com")
print(resp.status_code, resp.text)
with wafer.SyncSession() as session:
resp = session.get("https://example.com")
print(resp.json())
Requires Python 3.12 or later; wreq (the underlying Rust + BoringSSL HTTP library) is a compiled dependency bundled in the wheel.
Verify before relying
- Stability and breaking-change frequency: the project is marked as experimental proof-of-concept; real-world production reliability is unclear.
- Performance characteristics under high concurrency or large response sizes compared to standard HTTP clients.
- Whether the WAF challenge solvers (ACW, Amazon, TMD, Reddit) remain effective as WAF vendors update their detection.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.12) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — wreq |
| Maintenance | actively maintained — 4 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 213,759/month — #9,430 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: wafer_py-0.4.9-py3-none-any.whl
Keywords: anti-detection, client, fingerprint, http, scraping, tls, waf
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
wreqAn HTTP client library for Python with…
permissive · top 15,000 on PyPI
fetch-useRoutes HTTP requests through Browser-Use's…
permissive · top 5,000 on PyPI
wrapper-tls-requestsMakes HTTP requests with browser-like TLS…
permissive · top 15,000 on PyPI
rnetAn HTTP client library with browser…
copyleft · top 15,000 on PyPI
curl-cfficurl_cffi provides Python bindings to libcurl…
permissive · top 1,000 on PyPI
primpHTTP client library that mimics real web…
permissive · top 5,000 on PyPI
wafw00fIdentifies and fingerprints web application…
permissive · top 15,000 on PyPI
cloakbrowserLaunches a stealth Chromium browser that evades…
permissive · top 15,000 on PyPI
browserforgeGenerates realistic browser headers and device…
permissive · top 5,000 on PyPI
zenrowsPython client for the ZenRows web scraping API…
permissive · top 15,000 on PyPI