Namespace CobaltPdf.WebKit.Infrastructure.Provisioning
Classes
- BundleDownloadProgress
Progress payload reported during a bundle download.
- BundleManifest
Per-RID source-of-truth for which bundle to fetch and what SHA-256 it must have. The values here are pinned to the package version — every release publishes fresh bundles and updates this table.
To override at deployment time, set
COBALT_BUNDLE_URL(and optionallyCOBALT_BUNDLE_SHA256) — see BundleProvisioner.
- BundleProvisioner
Downloads, verifies, extracts, and caches the WebKitGTK bundle so the rendering subprocess can run inline (no Docker) inside a Linux .NET app.
First call performs the full provision (HTTPS GET → streaming SHA-256 → tar.gz extract → chmod). Subsequent calls short-circuit on the
.readymarker, returning in microseconds.Cross-process safety: a file lock under the cache directory serialises concurrent provisions (two web app workers booting at once).
- BundleSource
Describes where to fetch the WebKitGTK bundle for a given RID and how to verify its integrity. Resolved by BundleManifest.
- BundleVariant
One buildable bundle for a RID, distinguished by its glibc floor. The host must have glibc ≥ MinGlibc to run it.
- DockerProbe
Lightweight check for "is Docker actually running on this host?" Used on Windows / macOS to decide whether the auto-Docker dev path is available before we attempt a render. Result is cached for the process lifetime — Docker doesn't appear and disappear during a single .NET app run.
- RuntimeId
Resolves the runtime identifier used to select the matching WebKitGTK bundle. Format:
linux-{x64|arm64}-{glibc|musl}.
- WslBundleProvisioner
Provisions the Linux WebKit bundle inside a WSL distribution so renders can run as a real Linux subprocess on a Windows dev box — no Docker required. The tarball is downloaded on the Windows side (re-using the regular HTTPS + SHA-256 pipeline), then extracted into the distro's
$HOME/.cache/CobaltPdfWebKit/…viawsl tar.Fast-path: subsequent calls check for the
.readymarker through the\wsl$<distro>UNC view in a few microseconds and skip straight to dispatch.
- WslHomePaths
Triple of (distro name, Linux-side bundle home, UNC view of the same). Returned by EnsureAsync(CancellationToken).
- WslProbe
Detects whether WSL (Windows Subsystem for Linux) is usable as a render backend, and exposes the bits of distro state the rest of the library needs (chosen distro name, that distro's
$HOME, path translation).All checks short-circuit on non-Windows OSes.