Add PERFORMANCE.md and link it plus STEALTH_PATCHES.md from README
Documents measured single-request and concurrency (5x/20x) overhead of the context.request fast path against aiohttp: ~15-20ms/request steady state, no serialization bottleneck through the shared context up to at least 20 concurrent requests, browser launch (~1s) paid once at startup. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0116i7dYLNZTXNR7Lqf439bV
This commit is contained in:
@@ -7,6 +7,12 @@ persistent, stealth-patched Chromium instance. Every request goes out
|
||||
through the real browser's own network stack, so it carries a genuine
|
||||
Chrome TLS/HTTP2/UA fingerprint instead of Python's OpenSSL-based one.
|
||||
|
||||
This README is the complete documentation. Two companion documents go
|
||||
deeper on specific topics: [`STEALTH_PATCHES.md`](./STEALTH_PATCHES.md)
|
||||
(every anti-automation patch applied, and why) and
|
||||
[`PERFORMANCE.md`](./PERFORMANCE.md) (measured latency and concurrency
|
||||
overhead against `aiohttp`).
|
||||
|
||||
## Why this exists
|
||||
|
||||
`requests`, `httpx`, and `aiohttp` all negotiate TLS through Python's
|
||||
@@ -33,7 +39,9 @@ endpoint:
|
||||
|
||||
Distinct hashes, produced by the same physical request path our
|
||||
`get`/`post`/etc. use — proof the fast path is not just claiming to be
|
||||
Chrome, it is Chrome's own network stack.
|
||||
Chrome, it is Chrome's own network stack. Measured latency and
|
||||
concurrency overhead of that same fast path against `aiohttp` — steady
|
||||
state, and 5×/20× concurrent — are in [`PERFORMANCE.md`](./PERFORMANCE.md).
|
||||
|
||||
On top of that, `stealthii` removes the JS-level automation tells a
|
||||
stock headless Chromium exposes — `navigator.webdriver`, a missing
|
||||
|
||||
Reference in New Issue
Block a user