[package] name = "obscura-net" version.workspace = true edition.workspace = true [features] default = [] stealth = ["wreq", "wreq-util"] [dependencies] reqwest = { workspace = true } tokio = { workspace = true } url = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } tracing = { workspace = true } thiserror = { workspace = true } async-trait = "0.1" encoding_rs = "0.8" tempfile = "3" # wreq and wreq-util are pre-release crates whose API changes between rc builds # (CertStore moved out of `tls`, `cert_store` renamed to `tls_cert_store`, the # Emulation builder reshuffled). A caret requirement let a fresh resolve pull a # newer, incompatible rc and broke `cargo build --features stealth` (issue #234). # Pin exact versions so the build always resolves to the API wreq_client.rs targets. wreq-util = { version = "=3.0.0-rc.12", optional = true } # `prefix-symbols` renames BoringSSL exports to avoid clashes with system OpenSSL, # but the renaming is only correct on Linux and Android (per wreq's README). # Enabling it on other platforms produces unresolved `build_script_main_*` # symbols at link time (see issue #39). [target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies] wreq = { version = "=6.0.0-rc.29", optional = true, features = ["prefix-symbols", "socks"] } [target.'cfg(not(any(target_os = "linux", target_os = "android")))'.dependencies] wreq = { version = "=6.0.0-rc.29", optional = true, features = ["socks"] }