[package] name = "ferron" version = "1.0.0" edition = "2021" [package.metadata.winresource] ProductName = "Ferron" [dependencies] hyper = { version = "1.6.0", features = ["full"] } tokio = { version = "1.44.2", features = ["full"] } http-body-util = "0.1.0" hyper-util = { version = "0.1", features = ["full"] } tokio-util = { version = "0.7.13", features = ["io"] } rustls = { version = "0.23.24", default-features = false, features = ["tls12", "std", "ring"] } rustls-acme = { version = "0.13.0", default-features = false, features = ["tls12", "ring"] } tokio-rustls = { version = "0.26.1", default-features = false, features = ["tls12", "ring"] } rustls-pki-types = "1.11.0" rustls-pemfile = "2.2.0" yaml-rust2 = { workspace = true } anyhow = "1.0.98" futures-util = "0.3.31" chrono = "0.4.39" async-trait = "0.1.86" rustls-native-certs = "0.8.1" ocsp-stapler = { version = "0.4.4", default-features = false } clap = { version = "4.5.28", features = ["derive"] } fancy-regex = "0.14.0" password-auth = { workspace = true } base64 = "0.22.1" sha2 = "0.10.8" new_mime_guess = "4.0.4" async-compression = { version = "0.4.18", features = ["tokio", "gzip", "brotli", "deflate", "zstd"] } urlencoding = "2.1.3" async-channel = "2.3.1" mimalloc = { workspace = true } cache_control = { git = "https://github.com/DorianNiemiecSVRJS/rust-cache-control.git", optional = true } # Temporarily replaced with a fork itertools = { version = "0.14.0", optional = true } rand = "0.9.0" memmem = { version = "0.1.1", optional = true } httparse = { version = "1.10.0", optional = true } pin-project-lite = "0.2.16" hashlink = "0.10.0" glob = "0.3.2" hyper-tungstenite = "0.17.0" tokio-tungstenite = { version = "0.26.2", features = ["rustls-tls-native-roots"] } http = "1.2.0" pyo3 = { version = "0.24.1", optional = true, features = ["anyhow", "auto-initialize"] } futures-lite = "2.6.0" nix = { version = "0.30.0", optional = true, features = ["process", "signal"] } interprocess = { version = "2.2.3", features = ["tokio"], optional = true } serde = { version = "1.0.219", optional = true, features = ["derive"] } serde_bytes = { version = "0.11.17", optional = true } postcard = { version = "1.1.1", optional = true, default-features = false, features = ["use-std"] } bytes = { version = "1.10.1", optional = true } pyo3-async-runtimes = { version = "0.24.0", optional = true, features = ["tokio", "tokio-runtime"] } h3 = "0.0.7" h3-quinn = "0.0.9" quinn = "0.11.7" [dev-dependencies] tokio-test = "0.4.4" rusty-hook = { workspace = true } [features] default = ["cache", "cgi", "fauth", "fcgi", "fproxy", "rproxy", "scgi"] asgi = ["pyo3", "pyo3-async-runtimes"] cache = ["cache_control", "itertools"] cgi = ["httparse", "memmem"] example = [] fauth = [] fcgi = ["httparse", "memmem"] fproxy = [] rproxy = [] scgi = ["httparse", "memmem"] wsgi = ["pyo3"] wsgid = ["pyo3", "nix", "interprocess", "itertools", "serde", "serde_bytes", "postcard", "hashlink/serde", "hashlink/serde_impl", "bytes"] [build-dependencies] winresource = "0.1.19"