[package] name = "ratmom" version = "0.1.0" description = "Sensible, async, curl-based HTTP client" authors = [ "Stephen M. Coakley ", "Lauren N. Liberda ", ] license = "MIT" keywords = ["http", "request", "client", "async", "curl"] categories = ["web-programming::http-client"] repository = "https://codeberg.org/transcast/ratmom" documentation = "https://docs.rs/ratmom/" readme = "README.md" edition = "2021" exclude = [".*", "benchmarks", "media", "src/cookies/psl/list/*/"] [package.metadata.docs.rs] features = ["cookies", "json", "nightly"] [badges.maintenance] status = "actively-developed" [features] default = ["http2", "native-tls", "text-decoding"] cookies = ["httpdate"] http2 = ["ratcurl/http2"] json = ["serde", "serde_json"] impersonate-chrome = ["ratcurl/impersonate-chrome"] impersonate-ff = ["ratcurl/impersonate-ff"] native-tls = ["ratcurl/ssl", "ratcurl-sys/ssl"] nightly = [] psl = ["httpdate", "publicsuffix"] rustls-tls = ["ratcurl/rustls", "ratcurl/static-curl"] rustls-tls-native-certs = ["rustls-tls", "data-encoding", "rustls-native-certs"] spnego = ["ratcurl-sys/spnego"] static-curl = ["ratcurl/static-curl"] static-ssl = ["ratcurl/static-ssl"] text-decoding = ["encoding_rs", "mime"] unstable-interceptors = [] [dependencies] async-channel = "1.7" # channel used for internal communication castaway = "0.2" # buffer type specialization crossbeam-utils = ">=0.7.0, <0.9.0" # synchronization primitives event-listener = "2.3.3" # synchronization primitive futures-io = "0.3.24" # futures-io ecosystem compatibility http = "0.2.1" # http ecosystem compatibility, part of API log = "0.4" # log ecosystem compatibility once_cell = "1" # used for a few singletons polling = "2" # async I/O driver sluice = "0.5.4" # byte buffers between curl and ratmom url = "2.1" # URL parsing waker-fn = "1" # async primitive # underlying HTTP engine that powers ratmom [dependencies.ratcurl] version = "0.1.0" default-features = false # access to certain curl APIs not exposed in safe wrapper [dependencies.ratcurl-sys] version = "0.1.0" default-features = false # used in TLS cert parsing [dependencies.data-encoding] version = "2" optional = true # used for proper locale-sensitive text decoding [dependencies.encoding_rs] version = "0.8" optional = true # common futures primitives [dependencies.futures-lite] version = "1.10.1" default-features = false # used in cookie parsing [dependencies.httpdate] version = "1" optional = true # used to parse content-type header [dependencies.mime] version = "0.3" optional = true # PSL database parsing [dependencies.publicsuffix] version = "2.0.6" features = ["std"] optional = true # access to native cert store when using rustls [dependencies.rustls-native-certs] version = "0.6" optional = true # serde ecosystem compatibility for serializing and deserializing requests and # responses [dependencies.serde] version = "1.0" optional = true # conveniences for sending and receiving JSON data [dependencies.serde_json] version = "1.0" optional = true # tracing ecosystem compatibility [dependencies.tracing] version = "0.1.17" features = ["log"] # tracing ecosystem compatibility [dependencies.tracing-futures] version = "0.2" default-features = false features = ["std", "std-future"] [dev-dependencies] env_logger = "0.9" futures-lite = "1.10.1" flate2 = "1.0.3" indicatif = "0.15" rayon = "1" static_assertions = "1.1" structopt = "0.3" tempfile = "3.1" test-case = "2.0" tracing-subscriber = ">=0.3.8, <0.4.0" serde_json = "1" [dev-dependencies.testserver] path = "testserver" [[example]] name = "cookies" required-features = ["cookies"] [[example]] name = "json" required-features = ["json", "serde/derive"] [workspace] members = ["benchmarks", "testserver"]