xitca-http 0.9.6

http library for xitca
Documentation
[package]

name = "xitca-http"

version = "0.9.6"

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 include only http1.

default = ["http1"]

# http1 specific feature.

http1 = ["runtime", "dep:httparse", "dep:itoa"]

# http2 specific feature.

http2 = ["runtime", "dep:fnv", "futures-util/alloc"]

# http3 specific feature.

http3 = ["runtime", "xitca-io/quic", "futures-util/alloc", "dep:h3", "dep:h3-quinn", "dep:quinn"]

# openssl as server side tls.

openssl = ["__tls", "runtime", "xitca-tls/openssl"]

# rustls as server side tls.

rustls = ["__tls", "runtime", "xitca-tls/rustls"]

# rustls as server side tls.

native-tls = ["__tls", "runtime", "xitca-tls/native-tls"]

# async runtime feature.

runtime = ["dep:tokio", "xitca-io/runtime"]



# unstable features that are subject to be changed at anytime.

io-uring = ["xitca-io/runtime-uring"]

router = ["xitca-router"]



# shared for tls features

__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 }



# tls support shared

xitca-tls = { workspace = true, optional = true }



# http/1 support

httparse = { workspace = true, optional = true }

itoa = { version = "1", optional = true }



# http/2 support

fnv = { version = "1.0.7", optional = true }

futures-util = { version = "0.3.17", default-features = false, optional = true }



# http/3 support

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 }



# async runtime support.

tokio = { workspace = true, features = ["rt", "sync", "time"], optional = true }



# util service support

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