rfheadless 0.1.0

A headless browsing engine API for Rust
Documentation
[package]
name = "rfheadless"
version = "0.1.0"
edition = "2021"
authors = ["RFox Contributors"] # Watch there be no contributors lol
description = "A headless browsing engine API for Rust"
license = "MIT OR Apache-2.0"
repository = "https://github.com/idiotstudios/rfheadless"
readme = "README.md"
documentation = "https://docs.rs/rfheadless"
keywords = ["browser", "headless", "automation", "cdp"]
categories = ["web-programming", "api-bindings"]

[[bin]]
name = "rfheadless"
path = "src/main.rs"

[features]
default = ["rfengine"]
cdp = ["headless_chrome"]
simple = ["reqwest", "scraper"]
rfengine = ["reqwest", "scraper", "boa_engine", "url"]

[dependencies]
anyhow = "1.0"
thiserror = "2.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
base64 = "0.21"

# Async helpers
tokio = { version = "1.0", features = ["rt-multi-thread", "macros", "sync"] }
log = "0.4"

# HTTP + HTML parsing backend (simple engine & RFEngine)
reqwest = { version = "0.11", optional = true, features = ["blocking", "rustls-tls"] }
scraper = { version = "0.13", optional = true }
boa_engine = { version = "0.20", optional = true }
url = { version = "2", optional = true }

# CDP backend (feature-gated)
headless_chrome = { git = "https://github.com/rust-headless-chrome/rust-headless-chrome", optional = true, version = "1.0.20" }

# Deterministic test helpers (used by rendering/golden tests)
sha2 = "0.10"
hex = "0.4"

# Async helpers used for parallel stylesheet fetching
futures = "0.3"

# CLI
clap = { version = "4.2", features = ["derive"] }
num_cpus = "1.17"

[dev-dependencies]
anyhow = "1.0"
tokio = { version = "1.0", features = ["full"] }
tiny_http = "0.12"
criterion = "0.4"

[[bench]]
name = "latency_runner"
harness = false
path = "benches/latency_runner.rs"