[package]
name = "xitca-http"
version = "0.9.4"
edition = "2024"
license = "Apache-2.0"
description = "http library for xitca"
repository = "https://github.com/HFQR/xitca-web"
keywords = ["xitca", "xitca-web"]
authors = ["fakeshadow <everestshadow@gmail.com>"]
readme= "README.md"
rust-version.workspace = true
[lints]
workspace = true
[features]
default = ["http1"]
http1 = ["runtime", "dep:httparse", "dep:itoa"]
http2 = ["runtime", "dep:fnv", "futures-util/alloc"]
http3 = ["runtime", "xitca-io/quic", "futures-util/alloc", "dep:h3", "dep:h3-quinn", "dep:quinn"]
openssl = ["__tls", "runtime", "xitca-tls/openssl"]
rustls = ["__tls", "runtime", "xitca-tls/rustls"]
native-tls = ["__tls", "runtime", "xitca-tls/native-tls"]
runtime = ["dep:tokio", "xitca-io/runtime"]
io-uring = ["xitca-io/runtime-uring"]
router = ["xitca-router"]
__tls = []
[dependencies]
xitca-io = { workspace = true }
xitca-service = { workspace = true, features = ["alloc"] }
xitca-unsafe-collection = { workspace = true, features = ["bytes"] }
http = { workspace = true }
http-body-alt = { workspace = true }
httpdate = "1.0"
pin-project-lite = { workspace = true }
tracing = { version = "0.1.40", default-features = false }
xitca-tls = { workspace = true, optional = true }
httparse = { workspace = true, optional = true }
itoa = { version = "1", optional = true }
fnv = { version = "1.0.7", optional = true }
futures-util = { version = "0.3.17", default-features = false, optional = true }
h3 = { version = "0.0.8", optional = true }
h3-quinn = { version = "0.0.10", optional = true }
quinn = { version = "0.11", default-features = false, features = ["ring"], optional = true }
tokio = { workspace = true, features = ["rt", "sync", "time"], optional = true }
xitca-router = { workspace = true, optional = true }
[target.'cfg(not(target_family = "wasm"))'.dependencies]
socket2 = { workspace = true, features = ["all"] }
[dev-dependencies]
assert_matches = "1.5"
criterion = "0.8"
proptest = "1.11"
xitca-server = { workspace = true }
[[bench]]
name = "h1_decode"
harness = false
[[bench]]
name = "h2_hpack"
harness = false
required-features = ["http2"]