crates/web-journey/Cargo.toml
[package]
name = "web-journey"
# 0.1.0 (2026-09-28): a customer journey through a product's console in a REAL
# headless browser, product-neutral (RULE 2). The pattern is the one gunnar's
# private-gunnar-ops `estate journey` took the same day (chromiumoxide over the
# Chrome DevTools Protocol), written here for holger's estate so both products
# can drive their consoles with one driver; nothing in it names a product, a
# port or a route. The product keeps its STEPS (what its pages must show).
version = "0.1.0"
edition = "2021"
rust-version = "1.85"
description = "A console driven in a real headless Chromium over the DevTools Protocol (chromiumoxide): the browser launched trusting ONLY a handed-over certificate (SPKI pin) and reaching a name through a mapped address, a request interceptor that puts a break-glass bearer on the console's own origin only and answers a fake payment host with a stand-in page, a virtual WebAuthn authenticator for a passkey, eval / wait / goto / settle / full-page screenshots, 'does this look like a button' and a text lint over every page read (internal ids, operator sentences, a raw 0 on an unmeasured figure). Pure helpers are host-tested; the driver needs a Chromium-family binary."
license = "MIT OR Apache-2.0"
repository = "https://git.gunnar.rs/nordisk/edda"
keywords = ["cdp", "chromium", "headless", "e2e", "journey"]
categories = ["development-tools::testing", "web-programming"]
[lib]
name = "web_journey"
path = "src/lib.rs"
[dependencies]
# CDP straight to the browser binary: no driver process to version-match
# (WebDriver's chromedriver), and CDP is what gives a virtual WebAuthn
# authenticator and request interception.
chromiumoxide = { version = "0.9.1", default-features = false }
futures = { version = "0.3", default-features = false, features = ["std"] }
tokio = { version = "1", features = ["rt", "rt-multi-thread", "time", "macros"] }
serde_json = "1"
base64 = "0.23"
sha2 = "0.10"
x509-parser = "0.18"
rustls-pki-types = { version = "1", features = ["std"] }
[dev-dependencies]
rcgen = { version = "0.13", default-features = false, features = ["crypto", "pem", "ring"] }