rust-web-server 17.10.0

Static file web server and HTTP toolkit written in Rust. Supports HTTP/3, HTTP/2, and HTTP/1.1. HTTP/3 and HTTP/2 require a TLS certificate; without one the server falls back to plain HTTP/1.1 automatically.
Documentation
[package]
name = "rust-web-server"
version = "17.10.0"
authors = ["Bohdan Tsap <bohdan.tsap@tutanota.com>"]
repository = "https://github.com/bohdaq/rust-web-server"
description = "Static file web server and HTTP toolkit written in Rust. Supports HTTP/3, HTTP/2, and HTTP/1.1. HTTP/3 and HTTP/2 require a TLS certificate; without one the server falls back to plain HTTP/1.1 automatically."
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"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[features]
default = ["http3"]
http1 = ["dep:ctrlc"]
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"]

[dependencies]
ctrlc = { version = "3", 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"], 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 }