[package]
name = "rust-web-server"
version = "17.28.0"
authors = ["Bohdan Tsap <bohdan.tsap@tutanota.com>"]
repository = "https://github.com/bohdaq/rust-web-server"
description = "An HTTP web framework and server for Rust supporting HTTP/1.1, HTTP/2, and HTTP/3. No third-party HTTP dependencies — parsing, routing, middleware, auth, WebSocket, SSE, caching, tracing, and MCP server are all built in."
edition = "2021"
rust-version = "1.75"
license = "MIT"
keywords = ["http", "web-server", "http3", "toolkit", "network"]
categories = ["network-programming", "web-programming::http-server"]
[lib]
name = "rust_web_server"
path = "src/lib.rs"
[[bin]]
name = "rws"
path = "src/main.rs"
[features]
default = ["http3"]
http1 = ["dep:ctrlc", "dep:libc"]
http2 = ["dep:h2", "dep:rustls", "dep:tokio-rustls", "dep:tokio", "dep:bytes", "dep:rustls-pemfile", "dep:http"]
http3 = ["http2", "dep:quinn", "dep:h3", "dep:h3-quinn"]
acme = ["http2", "dep:rcgen", "dep:webpki-roots", "dep:libc", "dep:aws-lc-rs"]
serde = ["dep:serde", "dep:serde_json"]
auth = ["dep:hmac", "dep:sha2"]
macros = ["dep:rws-macros"]
[dependencies]
ctrlc = { version = "3", optional = true }
libc = { version = "0.2", optional = true }
file-ext = "12.0.0"
flate2 = "1"
url-search-params = "12.0.0"
url-build-parse = "12.1.0"
tokio = { version = "1", features = ["net", "rt-multi-thread", "macros", "io-util", "signal", "time"], optional = true }
rcgen = { version = "0.13", default-features = false, features = ["pem", "aws_lc_rs"], optional = true }
webpki-roots = { version = "0.26", optional = true }
rustls = { version = "0.23", default-features = false, features = ["aws-lc-rs", "tls12", "logging", "std"], optional = true }
tokio-rustls = { version = "0.26", optional = true }
rustls-pemfile = { version = "2", optional = true }
h2 = { version = "0.4", optional = true }
bytes = { version = "1", optional = true }
http = { version = "1", optional = true }
quinn = { version = "0.11", optional = true }
h3 = { version = "0.0.8", optional = true }
h3-quinn = { version = "0.0.10", optional = true }
serde = { version = "1", features = ["derive"], optional = true }
serde_json = { version = "1", optional = true }
hmac = { version = "0.12", optional = true }
sha2 = { version = "0.10", optional = true }
aws-lc-rs = { version = "1", optional = true }
rws-macros = { path = "rws-macros", version = "17", optional = true }