uhttp 0.22.0

Simple http server for humans
Documentation
[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 }

# Optional dependencies for JSON support
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true, optional = true }

# Optional dependencies for router support
path-tree = { workspace = true, optional = true }
percent-encoding = { workspace = true, optional = true }
base64 = { workspace = true, optional = true }

# Optional dependencies for websocket support
tokio-tungstenite = { workspace = true, optional = true }

# Optional dependencies for Static File Server
mime_guess = { workspace = true, optional = true }
async-compression = { workspace = true, optional = true, features = [
  "tokio",
  "gzip",
  "brotli",
  "zstd",
] }

# Optional dependencies for Static File Server (Embedded)
include_dir = { workspace = true, optional = true }
flate2 = { workspace = true, optional = true }
brotli = { workspace = true, optional = true }

# Optional dependencies for query string parsing
serde_urlencoded = { workspace = true }