[package] name = "httproxide" description = "Rusted HTTP router reverse-proxy" license = "AGPL-3.0-only" version = "0.2.0" edition = "2021" default-run = "httproxide" [workspace] members = [ "client-util", ] [dependencies] anyhow = "1.0" axum = { version = "0.6", default-features = false } bytes = "1.4" #console-subscriber = "0.1" env_logger = "0.10" futures-util = "0.3" http = "0.2" http-body = "0.4" hyper = { version = "0.14", features = [ "http1" ] } log = "0.4" once_cell = "1.18" serde = { version = "1.0", features = [ "derive" ] } serde_yaml = "0.9" tokio = { version = "1.29", features = [ "rt", "macros", "signal", "fs" ] } tower-http = { version = "0.4", features = [ "add-extension", "map-response-body" ] } tower = { version = "0.4", features = [ "util" ] } client-util = { package = "httproxide-client-util", version = "0.2.0", optional = true, path = "./client-util" } h3 = { optional = true, version = "0.0.2" } h3-quinn = { optional = true, version = "0.0.3" } ipnet = { optional = true, version = "2.8", features = [ "serde" ] } lazy_static = { optional = true, version = "1.4" } quinn = { optional = true, version = "0.10" } # this enables all default features in the transitive dependency rcgen = { optional = true, version = "0.11" } regex = { optional = true, version = "1.9" } rustls = { optional = true, version = "0.21" } rustls-pemfile = { optional = true, version = "1.0" } serde-tuple-vec-map = { optional = true, version = "1.0" } tokio-rustls = { optional = true, version = "0.24" } socket2 = { optional = true, version = "0.5" } mimalloc = { version = "0.1.34", optional = true } [features] default = ["full"] full = [ "proxy-service", "fs-service", "redirect-service", "router-service", "return-service", "set-header-layer", "set-status-layer", "auth-layer", "ip-filter-layer", "auth-request-layer", "limit-layer", "plain-listener", "tls-listener", "h3-listener", "client-util/https", "client-util/unix", "http2" ] http2 = ["hyper/http2", "client-util/http2"] proxy-service = ["client-util"] fs-service = ["tower-http/fs"] redirect-service = ["tower-http/redirect"] router-service = ["regex"] return-service = [] set-header-layer = ["tower-http/set-header"] set-status-layer = ["tower-http/set-status"] auth-layer = ["tower-http/auth"] ip-filter-layer = ["tower-http/auth", "ipnet"] auth-request-layer = ["tower-http/validate-request", "client-util"] limit-layer = ["tower-http/limit", "tower-http/map-request-body"] tls-util = ["lazy_static", "rustls", "rustls-pemfile", "rcgen", "serde-tuple-vec-map"] tcp-util = ["socket2", "hyper/server"] plain-listener = ["tcp-util", "hyper/server"] tls-listener = ["tcp-util", "hyper/server", "tokio-rustls", "tls-util"] h3-listener = ["tls-util", "quinn", "h3", "h3-quinn"] [[bin]] name = "httproxide-configcheck" path = "src/config_check.rs"