[package] name = "rpxy-lib" version = "0.6.1" authors = ["Jun Kurihara"] homepage = "https://github.com/junkurihara/rust-rpxy" repository = "https://github.com/junkurihara/rust-rpxy" license = "MIT" readme = "../README.md" edition = "2021" publish = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features] default = ["http3-quinn", "sticky-cookie", "cache"] http3-quinn = ["quinn", "h3", "h3-quinn", "socket2"] http3-s2n = ["h3", "s2n-quic", "s2n-quic-rustls", "s2n-quic-h3"] sticky-cookie = ["base64", "sha2", "chrono"] cache = ["http-cache-semantics", "lru"] [dependencies] rand = "0.8.5" rustc-hash = "1.1.0" bytes = "1.5.0" derive_builder = "0.12.0" futures = { version = "0.3.28", features = ["alloc", "async-await"] } tokio = { version = "1.32.0", default-features = false, features = [ "net", "rt-multi-thread", "time", "sync", "macros", "fs", ] } async-trait = "0.1.73" hot_reload = "0.1.4" # reloading certs # Error handling anyhow = "1.0.75" thiserror = "1.0.48" # http and tls hyper = { version = "0.14.27", default-features = false, features = [ "server", "http1", "http2", "stream", ] } hyper-rustls = { version = "0.24.1", default-features = false, features = [ "tokio-runtime", "webpki-tokio", "http1", "http2", ] } tokio-rustls = { version = "0.24.1", features = ["early-data"] } rustls = { version = "0.21.7", default-features = false } webpki = "0.22.1" x509-parser = "0.15.1" # logging tracing = { version = "0.1.37" } # http/3 # quinn = { version = "0.9.3", optional = true } quinn = { path = "../submodules/quinn/quinn", optional = true } # Tentative to support rustls-0.21 h3 = { path = "../submodules/h3/h3/", optional = true } # h3-quinn = { path = "./h3/h3-quinn/", optional = true } h3-quinn = { path = "../submodules/h3-quinn/", optional = true } # Tentative to support rustls-0.21 # for UDP socket wit SO_REUSEADDR when h3 with quinn socket2 = { version = "0.5.4", features = ["all"], optional = true } s2n-quic = { path = "../submodules/s2n-quic/quic/s2n-quic/", default-features = false, features = [ "provider-tls-rustls", ], optional = true } s2n-quic-h3 = { path = "../submodules/s2n-quic/quic/s2n-quic-h3/", optional = true } s2n-quic-rustls = { path = "../submodules/s2n-quic/quic/s2n-quic-rustls/", optional = true } # cache http-cache-semantics = { path = "../submodules/rusty-http-cache-semantics/", optional = true } lru = { version = "0.11.1", optional = true } # cookie handling for sticky cookie chrono = { version = "0.4.30", default-features = false, features = [ "unstable-locales", "alloc", "clock", ], optional = true } base64 = { version = "0.21.4", optional = true } sha2 = { version = "0.10.7", default-features = false, optional = true } [dev-dependencies]