[package]
edition = "2024"
rust-version = "1.85"
name = "isahc"
version = "2.0.0"
authors = ["Stephen M. Coakley <me@stephencoakley.com>"]
build = "build.rs"
exclude = [
".*",
"benchmarks",
"media",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "The practical HTTP client that is fun to use."
documentation = "https://docs.rs/isahc/"
readme = "README.md"
keywords = [
"http",
"request",
"client",
"async",
"curl",
]
categories = ["web-programming::http-client"]
license = "MIT"
repository = "https://github.com/sagebind/isahc"
[package.metadata.docs.rs]
features = [
"cookies",
"json",
"tls-insecure",
"trust-webpki-roots",
]
[badges.maintenance]
status = "passively-maintained"
[features]
cookies = ["dep:httpdate"]
default = [
"default-tls",
"http2",
"log",
"static-curl",
"text-decoding",
]
default-tls = ["rustls-tls"]
http2 = ["curl/http2"]
json = [
"dep:serde",
"dep:serde_json",
]
log = [
"tracing/log",
"dep:log",
]
native-tls = [
"tls",
"curl/ssl",
"curl-sys/ssl",
]
native-tls-static = [
"native-tls",
"curl/static-ssl",
"curl-sys/static-ssl",
]
psl = [
"dep:httpdate",
"dep:psl",
"dep:publicsuffix",
]
rustls-tls = [
"static-curl",
"tls",
"curl/rustls",
"curl-sys/rustls",
]
rustls-tls-webpki-roots = [
"rustls-tls",
"trust-webpki-roots",
]
spnego = ["curl-sys/spnego"]
static-curl = ["curl/static-curl"]
text-decoding = [
"dep:encoding_rs",
"dep:mime",
]
tls = ["dep:pem-rfc7468"]
tls-insecure = []
trust-webpki-roots = ["dep:webpki-root-certs"]
unstable-interceptors = []
[lib]
name = "isahc"
path = "src/lib.rs"
[[example]]
name = "async"
path = "examples/async.rs"
[[example]]
name = "badssl"
path = "examples/badssl.rs"
required-features = ["tls-insecure"]
[[example]]
name = "client"
path = "examples/client.rs"
[[example]]
name = "cookies"
path = "examples/cookies.rs"
required-features = ["cookies"]
[[example]]
name = "head_length"
path = "examples/head_length.rs"
[[example]]
name = "http2"
path = "examples/http2.rs"
[[example]]
name = "json"
path = "examples/json.rs"
required-features = [
"json",
"serde/derive",
]
[[example]]
name = "logging"
path = "examples/logging.rs"
[[example]]
name = "parallel_requests"
path = "examples/parallel_requests.rs"
[[example]]
name = "progress"
path = "examples/progress.rs"
[[example]]
name = "simple"
path = "examples/simple.rs"
[[example]]
name = "spurious_abort_logs"
path = "examples/spurious_abort_logs.rs"
[[example]]
name = "stream_cancellation"
path = "examples/stream_cancellation.rs"
[[example]]
name = "tls_advanced"
path = "examples/tls_advanced.rs"
[[example]]
name = "tracing"
path = "examples/tracing.rs"
[[example]]
name = "upload_file"
path = "examples/upload_file.rs"
[[example]]
name = "version"
path = "examples/version.rs"
[[test]]
name = "auth"
path = "tests/auth.rs"
[[test]]
name = "cookies"
path = "tests/cookies.rs"
[[test]]
name = "encoding"
path = "tests/encoding.rs"
[[test]]
name = "expect"
path = "tests/expect.rs"
[[test]]
name = "headers"
path = "tests/headers.rs"
[[test]]
name = "interceptors"
path = "tests/interceptors.rs"
[[test]]
name = "json"
path = "tests/json.rs"
[[test]]
name = "methods"
path = "tests/methods.rs"
[[test]]
name = "metrics"
path = "tests/metrics.rs"
[[test]]
name = "net"
path = "tests/net.rs"
[[test]]
name = "proxy"
path = "tests/proxy.rs"
[[test]]
name = "redirects"
path = "tests/redirects.rs"
[[test]]
name = "request_body"
path = "tests/request_body.rs"
[[test]]
name = "response_body"
path = "tests/response_body.rs"
[[test]]
name = "status"
path = "tests/status.rs"
[[test]]
name = "timeouts"
path = "tests/timeouts.rs"
[[test]]
name = "tls"
path = "tests/tls.rs"
[[test]]
name = "unix"
path = "tests/unix.rs"
[dependencies.async-channel]
version = ">=1.4.2, <3"
[dependencies.castaway]
version = "0.2"
[dependencies.crossbeam-utils]
version = ">=0.7.0, <0.9.0"
[dependencies.curl]
version = "0.4.43"
default-features = false
[dependencies.curl-sys]
version = ">=0.4.81, <0.4.88"
default-features = false
[dependencies.encoding_rs]
version = "0.8"
optional = true
[dependencies.event-listener]
version = "5"
[dependencies.futures-lite]
version = ">=1.10.1, <3"
[dependencies.http]
version = ">=0.2.1, <2"
[dependencies.httpdate]
version = "1"
optional = true
[dependencies.log]
version = "0.4"
optional = true
[dependencies.mime]
version = "0.3"
optional = true
[dependencies.pem-rfc7468]
version = "1"
features = ["std"]
optional = true
[dependencies.polling]
version = "3"
[dependencies.psl]
version = "2"
optional = true
[dependencies.publicsuffix]
version = "2"
features = ["std"]
optional = true
[dependencies.serde]
version = "1"
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.slab]
version = "0.4"
[dependencies.sluice]
version = "0.6"
[dependencies.tracing]
version = "0.1.17"
[dependencies.tracing-futures]
version = "0.2"
features = [
"std",
"std-future",
]
default-features = false
[dependencies.url]
version = "2.1"
[dependencies.waker-fn]
version = "1"
[dependencies.webpki-root-certs]
version = "1"
optional = true
[dev-dependencies.clap]
version = "4"
features = ["derive"]
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.flate2]
version = "1"
[dev-dependencies.indicatif]
version = "0.15"
[dev-dependencies.quickcheck]
version = "1"
[dev-dependencies.quickcheck_macros]
version = "1"
[dev-dependencies.rayon]
version = "1"
[dev-dependencies.rcgen]
version = "0.14"
[dev-dependencies.regex]
version = "1"
[dev-dependencies.rustls-pki-types]
version = "1"
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.static_assertions]
version = "1"
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.test-case]
version = "3"
[dev-dependencies.tracing-subscriber]
version = ">=0.2.12, <0.4"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = ["cfg(tarpaulin)"]