[package]
name = "rama-http"
description = "rama http layers, services and other utilities"
version = { workspace = true }
license = { workspace = true }
edition = { workspace = true }
repository = { workspace = true }
keywords = ["io", "async", "proxy", "http", "rama"]
categories = ["asynchronous", "network-programming", "web-programming"]
authors = { workspace = true }
rust-version = { workspace = true }
[lints]
workspace = true
[features]
default = []
compression = ["dep:async-compression"]
telemetry = ["rama-core/telemetry"]
tls = ["rama-net/tls"]
[dependencies]
async-compression = { workspace = true, features = [
"tokio",
"brotli",
"zlib",
"gzip",
"zstd",
], optional = true }
base64 = { workspace = true }
bitflags = { workspace = true }
bytes = { workspace = true }
const_format = { workspace = true }
futures-lite = { workspace = true }
headers = { workspace = true }
http = { workspace = true }
http-body = { workspace = true }
http-body-util = { workspace = true }
http-range-header = { workspace = true }
httpdate = { workspace = true }
iri-string = { workspace = true }
mime = { workspace = true }
mime_guess = { workspace = true }
paste = { workspace = true }
percent-encoding = { workspace = true }
pin-project-lite = { workspace = true }
rama-core = { version = "0.2.0-alpha.6", path = "../rama-core" }
rama-http-types = { version = "0.2.0-alpha.6", path = "../rama-http-types" }
rama-net = { version = "0.2.0-alpha.6", path = "../rama-net", features = ["http"] }
rama-ua = { version = "0.2.0-alpha.6", path = "../rama-ua" }
rama-utils = { version = "0.2.0-alpha.6", path = "../rama-utils" }
regex = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_html_form = { workspace = true }
serde_json = { workspace = true }
tokio = { workspace = true, features = ["macros", "fs", "io-std"] }
tokio-util = { workspace = true, features = ["io"] }
tracing = { workspace = true }
uuid = { workspace = true, features = ["v4"] }
[dev-dependencies]
brotli = { workspace = true }
flate2 = { workspace = true }
itertools = { workspace = true }
parking_lot = { workspace = true }
rama-http-backend = { version = "0.2.0-alpha.6", path = "../rama-http-backend" }
rama-tcp = { version = "0.2.0-alpha.6", path = "../rama-tcp" }
tempfile = { workspace = true }
tokio = { workspace = true, features = ["full"] }
tokio-test = { workspace = true }
tracing-subscriber = { workspace = true, features = ["env-filter"] }
zstd = { workspace = true }
[package.metadata.cargo-public-api-crates]
allowed = []
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]