xmpp-rs/tokio-xmpp/Cargo.toml
Jonas Schäfer fc8b581593 Clean up tls-related feature flags
This provides a clear and consistent interface for selecting TLS-related
features on both (xmpp and tokio-xmpp) crates. All feature checks have
been revamped. All working combinations have been tested (including a
connectivity test + --all-features docs build) using:

```
set -xeuo pipefail
features=(aws_lc_rs ring ktls,aws_lc_rs ktls,ring aws_lc_rs,ring aws_lc_rs,ring,ktls native-tls rustls-any-backend)
export RUSTFLAGS=" -D warnings"
cargo test --no-default-features
cargo test
for feature in ${features[@]}; do
  echo ">>> BUILDING with $feature" 2>&1
  # Running code or building examples cannot succeed with rustls-any-backend.
  features="starttls,$feature"
  if [ "$feature" != 'rustls-any-backend' ]; then
    if ! cargo test --no-default-features --features="$features"; then
      echo ">>> BUILD FAILED for tls feature set: $features" >&2
      exit 1
    fi
    set +e
    timeout -sINT -p -k 2 3 cargo run --no-default-features --features="$features" --example keep_connection -- test@hub.sotecware.net "$(pass xmpp/test@hub.sotecware.net)"
    status="$?"
    set -e
    if [ $status -ne 0 ]; then
      echo ">>> keep_connection did not shut down cleanly! (status: $status)" >&2
      exit 1
    fi
  else
    if ! cargo build --no-default-features --features="$feature"; then
      echo ">>> BUILD FAILED for tls feature set: $features" >&2
      exit 1
    fi
  fi
done
RUSTDOCFLAGS="--cfg docsrs" RUSTFLAGS="--cfg xmpprs_doc_build" cargo +nightly doc -Zrustdoc-map --all-features
```
2025-05-10 22:02:39 +02:00

92 lines
3.1 KiB
TOML

[package]
name = "tokio-xmpp"
version = "4.0.0"
authors = ["Astro <astro@spaceboyz.net>", "Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>", "pep <pep+code@bouah.net>", "O01eg <o01eg@yandex.ru>", "SonnyX <randy@vonderweide.nl>", "Paul Fariello <paul@fariello.eu>"]
description = "Asynchronous XMPP for Rust with tokio"
license = "MPL-2.0"
homepage = "https://gitlab.com/xmpp-rs/xmpp-rs"
repository = "https://gitlab.com/xmpp-rs/xmpp-rs"
documentation = "https://docs.rs/tokio-xmpp"
categories = ["asynchronous", "network-programming"]
keywords = ["xmpp", "tokio"]
edition = "2021"
[dependencies]
bytes = "1"
futures = "0.3"
log = "0.4"
tokio = { version = "1", features = ["net", "rt", "rt-multi-thread", "macros", "io-util"] }
tokio-stream = { version = "0.1", features = ["sync"] }
webpki-roots = { version = "0.26", optional = true }
rustls-native-certs = { version = "0.7", optional = true }
rxml = { version = "0.13.1", features = ["compact_str"] }
rand = "0.8"
syntect = { version = "5", optional = true }
pin-project-lite = { version = "0.2" }
# same repository dependencies
sasl = { version = "0.5", path = "../sasl" }
xmpp-parsers = { version = "0.21", path = "../parsers", features = [ "log" ] }
xso = { version = "0.1", path = "../xso" }
# these are only needed for starttls ServerConnector support
hickory-resolver = { version = "0.24", optional = true}
idna = { version = "1.0", optional = true}
native-tls = { version = "0.2", optional = true }
tokio-native-tls = { version = "0.3", optional = true }
tokio-rustls = { version = "0.26", optional = true, default-features = false, features = ["logging", "tls12"] }
ktls = { version = "6", optional = true }
[dev-dependencies]
env_logger = { version = "0.11", default-features = false, features = ["auto-color", "humantime"] }
# this is needed for echo-component example
tokio = { version = "1", features = ["signal", "test-util"] }
tokio-xmpp = { path = ".", default-features = false, features = ["rustls-native-certs"]}
[[example]]
name = "contact_addr"
required-features = ["starttls"]
[[example]]
name = "download_avatars"
required-features = ["starttls"]
[[example]]
name = "echo_bot"
required-features = ["starttls"]
[[example]]
name = "echo_component"
required-features = ["starttls", "insecure-tcp"]
[[example]]
name = "echo_server"
required-features = ["starttls"]
[[example]]
name = "keep_connection"
required-features = ["starttls"]
[features]
default = ["starttls", "aws_lc_rs", "rustls-native-certs"]
starttls = ["dns"]
aws_lc_rs = ["rustls-any-backend", "tokio-rustls/aws_lc_rs"]
ring = ["rustls-any-backend", "tokio-rustls/ring"]
native-tls = ["dep:tokio-native-tls", "dep:native-tls"]
ktls = ["rustls-any-backend", "dep:ktls"]
rustls-any-backend = ["dep:tokio-rustls"]
rustls-native-certs = ["dep:rustls-native-certs"]
webpki-roots = ["dep:webpki-roots"]
insecure-tcp = []
syntax-highlighting = ["syntect"]
# Enable serde support in jid crate
serde = [ "xmpp-parsers/serde" ]
# Required by starttls, and used by insecure-tcp by default
dns = [ "hickory-resolver", "idna" ]
component = ["xmpp-parsers/component", "insecure-tcp"]
[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(xmpprs_doc_build)'] }