[package] name = "ureq" version = "3.0.0-rc2" authors = ["Martin Algesten ", "Jacob Hoffman-Andrews "] description = "Simple, safe HTTP client" license = "MIT OR Apache-2.0" repository = "https://github.com/algesten/ureq" readme = "README.md" keywords = ["web", "request", "https", "http", "client"] categories = ["web-programming::http-client"] edition = "2018" exclude = ["/cargo_deny.sh", "/deny.toml", "/test.sh"] # MSRV rust-version = "1.67" [package.metadata.docs.rs] features = ["rustls", "platform-verifier", "native-tls", "socks-proxy", "cookies", "gzip", "brotli", "charset", "json", "_test"] [features] default = ["rustls", "gzip", "json"] rustls = ["dep:rustls", "_tls", "dep:webpki-roots"] platform-verifier = ["dep:rustls-platform-verifier"] native-tls = ["dep:native-tls", "dep:der", "_tls", "dep:webpki-root-certs"] socks-proxy = ["dep:socks"] cookies = ["dep:cookie_store", "_url"] gzip = ["dep:flate2"] brotli = ["dep:brotli-decompressor"] charset = ["dep:encoding_rs"] json = ["dep:serde", "dep:serde_json"] # Underscore prefixed features are internal _url = ["dep:url"] _tls = ["dep:rustls-pemfile", "dep:rustls-pki-types"] _test = [] [dependencies] base64 = "0.22.1" hoot = "0.2.5" # hoot = { path = "../hoot/hoot" } http = "1.1.0" log = "0.4.22" once_cell = "1.19.0" utf-8 = "0.7.6" percent-encoding = "2.3.1" # These are used regardless of TLS implementation. rustls-pemfile = { version = "2.1.2", optional = true, default-features = false, features = ["std"] } rustls-pki-types = { version = "1.7.0", optional = true, default-features = false, features = ["std"] } rustls-platform-verifier = { version = "0.3.3", optional = true, default-features = false } webpki-roots = { version = "0.26.3", optional = true, default-features = false } webpki-root-certs = { version = "0.26.4", optional = true, default-features = false } # ring has a higher chance of compiling cleanly without additional developer environment rustls = { version = "0.23.11", optional = true, default-features = false, features = ["ring", "logging", "std", "tls12"] } native-tls = { version = "0.2.12", optional = true, default-features = false } der = { version = "0.7.9", optional = true, default-features = false, features = ["pem", "std"] } socks = { version = "0.3.4", optional = true } # cookie_store uses Url, while http-crate has its own Uri. # Keep url crate in lockstep with cookie_store. cookie_store = { version = "0.21.0", optional = true, default-features = false, features = ["preserve_order"] } url = { version = "2.3.1", optional = true, default-features = false } flate2 = { version = "1.0.30", optional = true } brotli-decompressor = { version = "4.0.1", optional = true } encoding_rs = { version = "0.8.34", optional = true } serde = { version = "1.0.204", optional = true, default-features = false, features = ["std"] } serde_json = { version = "1.0.120", optional = true, default-features = false, features = ["std"] } [build-dependencies] cc = "1.0.106" [dev-dependencies] # Needed for MSRV 1.67 (0.11 requires 1.71) env_logger = "=0.10.2" auto-args = "0.3.0" serde = { version = "1.0.204", features = ["std", "derive"] } assert_no_alloc = "1.1.2" [[example]] name = "cureq" required-features = ["rustls", "native-tls", "socks-proxy", "cookies", "gzip", "brotli", "charset"]