[package]
name = "uhttp"
version = "0.13.0"
edition = "2024"
description = "Simple http server for humans"
license = "MIT"
repository = "https://github.com/alshdavid/uhttp"
[features]
anyhow = ["dep:anyhow"]
json = ["dep:serde", "dep:serde_json"]
router = ["dep:percent-encoding", "dep:path-tree"]
http2 = ["dep:tokio-rustls", "dep:rustls-pemfile"]
websocket = ["dep:sha1", "dep:base64", "dep:tokio-tungstenite"]
file_server = ["dep:mime_guess", "dep:xxhash-rust", "dep:async-compression"]
file_server_include_dir = [
"file_server",
"dep:include_dir",
"dep:flate2",
"dep:brotli",
]
[lints]
workspace = true
[dependencies]
futures = { workspace = true }
http = { workspace = true }
http-body-util = { workspace = true }
hyper = { workspace = true, features = ["http1"] }
hyper-util = { workspace = true, features = ["server-graceful", "server-auto"] }
tokio = { workspace = true, features = ["rt-multi-thread", "fs", "net"] }
tokio-util = { workspace = true, features = ["io", "io-util", "futures-util"] }
tokio-rustls = { workspace = true, optional = true }
rustls-pemfile = { workspace = true, optional = true }
anyhow = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive"], optional = true }
serde_json = { workspace = true, optional = true }
path-tree = { workspace = true, optional = true }
percent-encoding = { workspace = true, optional = true }
base64 = { workspace = true, optional = true }
sha1 = { workspace = true, optional = true }
tokio-tungstenite = { workspace = true, optional = true }
mime_guess = { workspace = true, optional = true }
xxhash-rust = { workspace = true, optional = true, features = ["xxh3"] }
async-compression = { workspace = true, optional = true, features = [
"tokio",
"gzip",
"brotli",
"zstd",
] }
include_dir = { workspace = true, optional = true }
flate2 = { workspace = true, optional = true }
brotli = { workspace = true, optional = true }