[workspace] resolver = "2" members = [ "crates/obscura-dom", "crates/obscura-net", "crates/obscura-browser", "crates/obscura-cdp", "crates/obscura-js", "crates/obscura-mcp", "crates/obscura-cli", "crates/obscura", ] [workspace.package] version = "0.1.0" edition = "2021" license = "Apache-2.0" repository = "https://github.com/h4ckf0r0day/obscura" [workspace.dependencies] obscura-dom = { path = "crates/obscura-dom" } obscura-net = { path = "crates/obscura-net" } obscura-browser = { path = "crates/obscura-browser" } obscura-cdp = { path = "crates/obscura-cdp" } obscura-js = { path = "crates/obscura-js" } obscura-mcp = { path = "crates/obscura-mcp" } html5ever = "0.29" markup5ever = "0.14" selectors = "0.26" servo_arc = "0.4" cssparser = "0.34" tokio = { version = "1", features = ["full"] } tokio-tungstenite = "0.26" # No "cookies" feature: obscura manages cookies through its own CookieJar # (obscura-net/src/cookies.rs) and never uses reqwest's cookie store. Pulling # it in only added the cookie/cookie_store crates, and cookie 0.18.1's blanket # From impl fails to compile under coherence on some toolchains (issue #295). reqwest = { version = "0.12", features = ["gzip", "brotli", "deflate", "rustls-tls", "socks"], default-features = false } serde = { version = "1", features = ["derive"] } serde_json = "1" url = "2" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } clap = { version = "4", features = ["derive"] } uuid = { version = "1", features = ["v4"] } thiserror = "2" anyhow = "1" base64 = "0.22" # Unwinding (the Rust default) is REQUIRED for the anti-panic protocol: ops wrap # their bodies in std::panic::catch_unwind so a panic degrades to an error return # instead of unwinding into V8's FFI frame and aborting the process. panic="abort" # would turn every catchable op panic into a hard crash. [profile.release] panic = "unwind"