[package] name = "xmpp-proxy" version = "1.0.0" authors = ["moparisthebest "] description = "XMPP reverse proxy and outgoing proxy" repository = "https://code.moparisthebest.com/moparisthebest/xmpp-proxy" keywords = ["xmpp", "proxy"] license = "AGPL-3.0-or-later" readme = "README.md" edition = "2018" include = [ "**/*.rs", "Cargo.toml", "*.md", "xmpp-proxy.toml", ] [dependencies] toml = "0.5" serde_derive = "1.0" serde = { version = "1.0", features = ["derive"] } futures = "0.3" die = "0.2" anyhow = "1.0" tokio = { version = "1.9", features = ["net", "rt", "rt-multi-thread", "macros", "io-util", "signal"] } ring = "0.16" data-encoding = "2.3" untrusted = "0.7" # logging deps log = "0.4" rand = { version = "0.8", optional = true, features = [] } env_logger = { version = "0.9", optional = true, features = [] } # incoming deps tokio-rustls = { version = "0.23", optional = true } # outgoing deps lazy_static = { version = "1.4", optional = true } trust-dns-resolver = { version = "0.20", optional = true } #trust-dns-resolver = { version = "0.20", features = ["dns-over-rustls"], optional = true } # todo: feature to swap between webpki-roots and rustls-native-certs webpki-roots = { version = "0.22", optional = true } rustls-native-certs = { version = "0.6", optional = true } reqwest = { version = "0.11", optional = true, default-features = false, features = ["rustls-tls-native-roots", "json", "gzip", "trust-dns"] } # quic deps quinn = { version = "0.8", optional = true } # shared deps needed by quic and incoming rustls = { version = "0.20.2", optional = true } rustls-pemfile = { version = "0.2.1", optional = true } # websocket deps #tokio-tungstenite = { version = "0.16", optional = true, features = ["rustls-tls-webpki-roots"] } tokio-tungstenite = { version = "0.16", optional = true, features = ["rustls-tls-native-roots"] } futures-util = { version = "0.3", default-features = false, features = ["async-await", "sink", "std"], optional = true } [features] default = ["incoming", "outgoing", "quic", "websocket", "logging"] incoming = ["tokio-rustls", "rustls-pemfile", "rustls"] outgoing = ["tokio-rustls", "trust-dns-resolver", "rustls-native-certs", "lazy_static", "rustls", "reqwest", "rustls-pemfile"] quic = ["quinn", "rustls-pemfile", "rustls"] websocket = ["tokio-tungstenite", "futures-util", "tokio-rustls", "rustls-pemfile", "rustls"] logging = ["rand", "env_logger"] [package.metadata.cargo-all-features] skip_optional_dependencies = true [dev-dependencies] serde_json = "1.0"