[package]
edition = "2024"
rust-version = "1.85.0"
name = "volo-http"
version = "0.5.3"
authors = ["Volo Team <volo@cloudwego.io>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "HTTP framework implementation of volo."
homepage = "https://www.cloudwego.io/docs/volo/"
documentation = "https://docs.rs/volo-http"
readme = "README.md"
keywords = [
"async",
"rpc",
"http",
]
categories = [
"asynchronous",
"network-programming",
"web-programming",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/cloudwego/volo"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[badges.maintenance]
status = "actively-developed"
[features]
__serde = ["dep:serde"]
__tls = []
client = [
"hyper/client",
"dep:async-broadcast",
"dep:chrono",
"dep:hickory-resolver",
]
cookie = [
"dep:cookie",
"dep:cookie_store",
]
default = [
"default-client",
"default-server",
]
default-client = [
"client",
"http1",
"json",
]
default-server = [
"server",
"http1",
"query",
"form",
"json",
"multipart",
]
form = [
"__serde",
"dep:serde_urlencoded",
]
full = [
"client",
"server",
"http1",
"http2",
"query",
"form",
"json",
"tls",
"cookie",
"multipart",
"ws",
]
http1 = [
"hyper/http1",
"hyper-util/http1",
]
http2 = [
"hyper/http2",
"hyper-util/http2",
]
json = [
"__serde",
"dep:sonic-rs",
]
json-utf8-lossy = [
"json",
"sonic-rs/utf8_lossy",
]
multipart = ["dep:multer"]
native-tls = [
"__tls",
"dep:tokio-native-tls",
"volo/native-tls",
]
native-tls-vendored = [
"native-tls",
"volo/native-tls-vendored",
]
query = [
"__serde",
"dep:serde_urlencoded",
]
rustls = [
"__tls",
"dep:tokio-rustls",
"volo/rustls",
]
server = [
"hyper-util/server",
"dep:ipnet",
"dep:matchit",
"dep:memchr",
"dep:scopeguard",
"dep:mime_guess",
]
tls = ["rustls"]
ws = [
"dep:tungstenite",
"dep:tokio-tungstenite",
]
[lib]
name = "volo_http"
path = "src/lib.rs"
[dependencies.ahash]
version = "0.8"
[dependencies.async-broadcast]
version = "0.7"
optional = true
[dependencies.bytes]
version = "1"
[dependencies.chrono]
version = "0.4"
features = [
"std",
"clock",
]
optional = true
default-features = false
[dependencies.cookie]
version = "0.18"
features = ["percent-encode"]
optional = true
[dependencies.cookie_store]
version = "0.22"
optional = true
[dependencies.faststr]
version = "0.2.21"
features = ["serde"]
[dependencies.futures]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
[dependencies.hickory-resolver]
version = "0.25"
optional = true
[dependencies.http]
version = "1"
[dependencies.http-body]
version = "1"
[dependencies.http-body-util]
version = "0.1"
[dependencies.hyper]
version = "1.6"
[dependencies.hyper-util]
version = "0.1.11"
features = ["tokio"]
[dependencies.ipnet]
version = "2"
optional = true
[dependencies.itoa]
version = "1"
[dependencies.linkedbytes]
version = "0.1.9"
[dependencies.matchit]
version = "0.9"
optional = true
[dependencies.memchr]
version = "2"
optional = true
[dependencies.metainfo]
version = "0.7.14"
[dependencies.mime]
version = "0.3"
[dependencies.mime_guess]
version = "2"
optional = true
default-features = false
[dependencies.motore]
version = "0.4.1"
[dependencies.multer]
version = "3"
optional = true
[dependencies.parking_lot]
version = "0.12"
[dependencies.paste]
version = "1"
[dependencies.pin-project]
version = "1"
[dependencies.scopeguard]
version = "1"
optional = true
[dependencies.serde]
version = "1"
optional = true
[dependencies.serde_urlencoded]
version = "0.7"
optional = true
[dependencies.simdutf8]
version = "0.1"
[dependencies.sonic-rs]
version = "0.5"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"fs",
"time",
"macros",
"rt",
"signal",
"parking_lot",
]
[dependencies.tokio-native-tls]
version = "0.3"
optional = true
[dependencies.tokio-rustls]
version = "0.26"
optional = true
[dependencies.tokio-tungstenite]
version = "0.28"
optional = true
[dependencies.tokio-util]
version = "0.7"
features = ["io"]
[dependencies.tracing]
version = "0.1"
[dependencies.tungstenite]
version = "0.28"
optional = true
[dependencies.url]
version = "2"
[dependencies.volo]
version = "0.12.2"
[dev-dependencies.async-stream]
version = "0.3"
[dev-dependencies.libc]
version = "0.2"
[dev-dependencies.reqwest]
version = "0.12"
features = ["multipart"]
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.tokio-test]
version = "0.4"