49 lines
2.1 KiB
TOML
49 lines
2.1 KiB
TOML
[package]
|
|
name = "obscura-net"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
|
|
[features]
|
|
default = []
|
|
stealth = ["wreq", "wreq-util", "futures-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"
|
|
futures-util = { version = "0.3", optional = true }
|
|
# 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 }
|
|
|
|
[dev-dependencies]
|
|
# TLS fixtures for the configured-roots tests: rcgen mints a throwaway CA + leaf,
|
|
# tokio-rustls serves one HTTPS response with them. Pinned to the ring
|
|
# provider so the test binary has a single rustls CryptoProvider (reqwest's
|
|
# rustls also uses ring; adding aws-lc-rs would make provider auto-selection
|
|
# panic).
|
|
rcgen = "0.13"
|
|
tokio-rustls = { version = "0.26", default-features = false, features = ["ring", "tls12", "logging"] }
|
|
|
|
# `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", "stream", "gzip", "brotli", "deflate", "zstd"] }
|
|
|
|
[target.'cfg(not(any(target_os = "linux", target_os = "android")))'.dependencies]
|
|
wreq = { version = "=6.0.0-rc.29", optional = true, features = ["socks", "stream", "gzip", "brotli", "deflate", "zstd"] }
|