[package]
edition = "2021"
name = "vibeio-http"
version = "0.4.0"
authors = ["Dorian Niemiec <dorian@ferron.sh>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance HTTP server primitives for the `vibeio` runtime"
documentation = "https://docs.rs/vibeio-http"
readme = "README.md"
keywords = [
"async",
"http",
"server",
"quic",
]
categories = [
"network-programming",
"web-programming",
]
license = "MIT"
repository = "https://github.com/ferronweb/vibeio-http"
[features]
default = [
"h1",
"h1-zerocopy",
"h2",
]
h1 = [
"httparse",
"httpdate",
"memchr",
"tokio-util",
]
h1-zerocopy = [
"h1",
"vibeio/splice",
]
h2 = [
"rustc-hash",
"httpdate",
"tokio-util",
"pin-project-lite",
]
h3 = [
"rustc-hash",
"httpdate",
"tokio-util",
]
h3-quinn = [
"h3",
"dep:quinn",
]
[lib]
name = "vibeio_http"
path = "src/lib.rs"
[[example]]
name = "h2spec_server"
path = "examples/h2spec_server.rs"
[[example]]
name = "h3spec_server"
path = "examples/h3spec_server.rs"
[[test]]
name = "h1"
path = "tests/h1.rs"
[[test]]
name = "h2_interop"
path = "tests/h2_interop.rs"
[[test]]
name = "h2_interop_codec"
path = "tests/h2_interop_codec.rs"
[[test]]
name = "h3_interop"
path = "tests/h3_interop.rs"
[[test]]
name = "h3_multiplex_repro"
path = "tests/h3_multiplex_repro.rs"
[[test]]
name = "h3_quinn_adapter"
path = "tests/h3_quinn_adapter.rs"
[[test]]
name = "hpack_fixtures"
path = "tests/hpack_fixtures.rs"
[[test]]
name = "qpack_fixtures"
path = "tests/qpack_fixtures.rs"
[[bench]]
name = "h2_hpack"
path = "benches/h2_hpack.rs"
harness = false
required-features = ["h2"]
[[bench]]
name = "h3_qpack"
path = "benches/h3_qpack.rs"
harness = false
required-features = ["h3"]
[dependencies.bytes]
version = "1.11.1"
[dependencies.futures-util]
version = "0.3.32"
[dependencies.http]
version = "1.4.0"
[dependencies.http-body]
version = "1.0.1"
[dependencies.http-body-util]
version = "0.1.3"
[dependencies.httparse]
version = "1.10.1"
optional = true
[dependencies.httpdate]
version = "1.0.3"
optional = true
[dependencies.kanal]
version = "0.1.1"
[dependencies.memchr]
version = "2.8.0"
optional = true
[dependencies.oneshot]
version = "0.2.1"
features = [
"async",
"std",
]
[dependencies.parking_lot]
version = "0.12.5"
[dependencies.pin-project-lite]
version = "0.2.16"
optional = true
[dependencies.quinn]
version = "0.11"
optional = true
[dependencies.rustc-hash]
version = "2.1.3"
optional = true
[dependencies.send_wrapper]
version = "0.6.0"
[dependencies.tokio]
version = "1.50.0"
features = [
"sync",
"parking_lot",
]
[dependencies.tokio-util]
version = "0.7.18"
optional = true
[dependencies.vibeio]
version = "0.2.19"
features = ["time"]
default-features = false
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.h2]
version = "0.4"
[dev-dependencies.h3]
version = "0.0.8"
[dev-dependencies.h3-quinn]
version = "0.0.10"
[dev-dependencies.rcgen]
version = "0.14"
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.tokio]
version = "1.50.0"
features = [
"test-util",
"full",
]