WebReaper.Cdp
10.0.0
dotnet add package WebReaper.Cdp --version 10.0.0
NuGet\Install-Package WebReaper.Cdp -Version 10.0.0
<PackageReference Include="WebReaper.Cdp" Version="10.0.0" />
<PackageVersion Include="WebReaper.Cdp" Version="10.0.0" />
<PackageReference Include="WebReaper.Cdp" />
paket add WebReaper.Cdp --version 10.0.0
#r "nuget: WebReaper.Cdp, 10.0.0"
#:package WebReaper.Cdp@10.0.0
#addin nuget:?package=WebReaper.Cdp&version=10.0.0
#tool nuget:?package=WebReaper.Cdp&version=10.0.0
WebReaper.Cdp
Raw Chrome DevTools Protocol IPageLoadTransport for WebReaper — the AOT-clean browser transport, the bedrock for stealth Chromium fork backends (see WebReaper.Stealth.CloakBrowser).
Why this satellite
Three things WebReaper.Puppeteer and WebReaper.Playwright cannot do that this one does:
- AOT-publishable inside
WebReaper.Cli. PuppeteerSharp and Microsoft.Playwright both depend on reflection-heavy serialisation. The CLI bakesWebReaper.Cdpand stays single-binary across 6 RIDs. - Drive stealth Chromium forks (CloakBrowser, Patchright, Camoufox, undetected-chromedriver). Those ship as bare Chromium binaries with
--remote-debugging-port; CDP-direct is the only way to talk to them without re-introducing a heavy SDK dependency. - Connect to any CDP endpoint — a sidecar, a browser farm, a
playwright launch-server, a remote debug session.
Install
dotnet add package WebReaper.Cdp
Quick start
using WebReaper.Builders;
using WebReaper.Cdp;
// Option 1: connect to an existing CDP endpoint (BYO browser)
var engine = await ScraperEngineBuilder
.CrawlWithBrowser("https://example.com")
.Extract(schema)
.WithCdpPageLoader("http://localhost:9222")
.BuildAsync();
// Option 2: launch-and-connect (transport spawns Chromium itself)
var engine = await ScraperEngineBuilder
.CrawlWithBrowser("https://example.com")
.Extract(schema)
.WithCdpPageLoader(new CdpLaunchOptions
{
// ExecutablePath = null → PATH-detected Chrome / Chromium / Edge
Headless = true,
AdditionalArgs = ["--no-sandbox"]
})
.BuildAsync();
await engine.RunAsync();
CdpLaunchHelpers — the public utility every stealth satellite composes on
using WebReaper.Cdp;
var path = CdpLaunchHelpers.FindOnPath("google-chrome", "chromium", "chrome", "msedge");
var endpoint = await CdpLaunchHelpers.LaunchAsync(
new CdpLaunchSpec(path!, ["--headless=new", "--no-sandbox"]),
CancellationToken.None);
// endpoint.CdpUrl, endpoint.DisposeAsync()
WebReaper.Stealth.X satellites use these helpers + the WithCdpPageLoader(cdpUrl) overload — they spawn their fork's binary, then hand the resulting CDP URL to this transport.
SemVer
10.0.0 (initial release). See ADR-0052 for the design.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.8)
- WebReaper (>= 10.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on WebReaper.Cdp:
| Package | Downloads |
|---|---|
|
WebReaper.Stealth.CloakBrowser
CloakBrowser stealth Chromium fork backend for WebReaper. Adds .WithCloakBrowser() — one-liner that finds (or downloads from upstream) the CloakBrowser binary, launches it with the fork's recommended flags, and wires the resulting CDP endpoint into WebReaper.Cdp. CloakBrowser solves invisible bot-checks (Cloudflare Turnstile, reCAPTCHA v3, FingerprintJS) via C++ source-level fingerprint patches. The first concrete satellite of the ADR-0054 stealth-backend pattern. CloakBrowser binary: free to use; license at https://github.com/CloakHQ/CloakBrowser/blob/main/BINARY-LICENSE.md (no redistribution — this satellite downloads from upstream, does not bundle). |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.0 | 81 | 5/26/2026 |
10.0.0: initial release. Raw CDP IPageLoadTransport satellite per ADR-0052. AOT-clean by construction (System.Net.WebSockets + System.Text.Json source-gen). Public CdpLaunchHelpers utility (PATH search, free-port spawn, CDP-connect-validate, teardown) that every WebReaper.Stealth.* satellite composes on. Two builder overloads: WithCdpPageLoader(cdpUrl) and WithCdpPageLoader(CdpLaunchOptions). Implements all 7 PageAction arms (ADR-0035) including SemanticAct (ADR-0050). Requires WebReaper 10.0.0.