isahc 2.0.0

The practical HTTP client that is fun to use.
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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)"]