[package]
name = "uhttp"
version = "0.22.0"
edition = "2024"
description = "Simple http server for humans"
license = "MIT"
repository = "https://github.com/alshdavid/uhttp"
[features]
full = ["json", "router", "websocket", "file_server"]
json = ["dep:serde_json"]
router = ["dep:percent-encoding", "dep:path-tree", "dep:base64"]
websocket = ["dep:tokio-tungstenite"]
file_server = ["dep:mime_guess", "dep:async-compression"]
[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",
"macros",
] }
tokio-util = { workspace = true, features = ["io", "io-util", "futures-util"] }
anyhow = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true, optional = true }
path-tree = { workspace = true, optional = true }
percent-encoding = { workspace = true, optional = true }
base64 = { workspace = true, optional = true }
tokio-tungstenite = { workspace = true, optional = true }
mime_guess = { workspace = true, optional = true }
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 }
serde_urlencoded = { workspace = true }