Commit graph xmpp-rs/tokio-xmpp/src/lib.rs
Author SHA1 Message Date
Jonas Schäfer
ccdf27117d Fix docs build with current nightly
skip-changelog, we don't officially support nightly.

See-Also: https://github.com/rust-lang/rfcs/pull/3631
See-Also: https://github.com/rust-lang/rust/pull/138907
2025-10-08 13:03:39 +02:00
Maxime “pep” Buquet
9803546795
tokio-xmpp: Re-export xso::error::FromElementError
skip-changelog: code requiring xso hasn't been released yet

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2025-08-07 13:39:34 +02:00
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
Jonas Schäfer
78714475b2 tokio-xmpp: re-export rustls if using rustls backend
The user may have to call some global rustls functions depending on the
exact feature set of rustls enabled. Hence, we have to expose it.

Concretely, if the user somehow ends up with more than one rustls
backend, they have to configure one of the backends as default backend
at startup.
2025-05-10 11:09:58 +02:00
Maxime “pep” Buquet
b89d3ab04d xso: Add PrintRawXml helper struct with Display
Add a helper struct to be able to display Raw Xml, useful for debug
logs.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2025-02-12 20:17:41 +01:00
Jonas Schäfer
8a4d548d9a tokio_xmpp: implement IQ tracking 2025-01-26 17:15:41 +01:00
1ce2f894aa tokio_xmpp: Replace std stuff with alloc/core stuff 2024-12-19 20:45:36 +01:00
7991cef904 Add tests for crate exports ; add structure to imports/exports 2024-12-18 18:03:18 +00:00
Jonas Schäfer
80f899daa0 tokio_xmpp: implement high-level, resilient stanza stream 2024-12-17 18:16:02 +01:00
Jonas Schäfer
ab10e30ac0 Port crates to use new XSO-based xmlstream 2024-08-29 16:47:13 +02:00
Jonas Schäfer
c723897326 tokio_xmpp: introduce xmlstream module
This module provides XSO-based parsing, proper typestates and will
soon replace the proto module.
2024-08-29 16:42:57 +02:00
e6863bd9dd Reorganized client modules 2024-08-12 10:59:20 +00:00
9f4af1625d Component is now behind insecure-tcp feature flag 2024-08-10 18:09:12 +02:00
16a78d3bb5 More documentation for tokio_xmpp 2024-08-10 16:57:51 +02:00
0b58561003 Rename AsyncClient to Client 2024-08-10 16:57:51 +02:00
311e7406f0 Make Client and Component more unified, and connectors too 2024-08-10 16:57:49 +02:00
fde4c2b640 Move XmppCodec and XmppStream to proto module 2024-08-10 16:49:26 +02:00
ec3c7694a7 Moved starttls connector to tokio_xmpp::connect::starttls module 2024-08-10 16:49:26 +02:00
9151461b10 TCP connector is now in connect module 2024-08-10 16:49:26 +02:00
a3fbd77050 Remove tokio_xmpp::SimpleClient 2024-08-10 16:49:24 +02:00
fa99c09585 Indicate which feature flag for each module/type 2024-08-05 11:14:41 +02:00
34796c90d4 Only expose one error type in crate root 2024-08-04 16:04:09 +00:00
b9fc15977b Replace tokio_xmpp::stream_features with parsers 2024-08-02 18:25:32 +00:00
ee3d86ec42 Remove tokio_xmpp::ParseError and tokio_xmpp::starttls::ParseError 2024-08-01 12:55:17 +00:00
Emmanuel Gil Peyrot
e9b226e1ae tokio-xmpp: Import Jid, BareJid and Element properly
xmpp-parsers has stopped reexporting them, instead it reexports only the
crates themselves.
2024-07-25 14:36:09 +00:00
Parker
eb0bc1b82f Changed name to XmppCodec 2024-06-15 13:02:15 -04:00
Parker
6d449e9aaa Make XmppCodec public 2024-06-15 13:02:02 -04:00
Jonas Schäfer
0298caf97a tokio-xmpp: allow docs build with --all-features
This affects only the docs and is quite an ugly hack, but seems to be
the only way for now.
2024-04-23 19:22:04 +02:00
moparisthebest
019450ff4b
Add disabled-by-default insecure-tcp feature to tokio-xmpp for use by component connections 2024-01-03 19:34:03 -05:00
moparisthebest
733d005f51
DNS/TLS deps are now optional, component now also uses ServerConnector 2024-01-01 02:09:41 -05:00
moparisthebest
e784b15402
ServerConnector and AsyncClient support channel binding, SimpleClient uses ServerConnector 2024-01-01 02:08:40 -05:00
moparisthebest
3cab603a4c
Add AsyncServerConnector to AsyncClient to be able to support any stream
Unfortunately API breaking unless we do some export mangling
2024-01-01 02:08:13 -05:00
Maxime “pep” Buquet
079ca7dd90 tokio-xmpp: Also compile_error when no tls-* feature is enabled
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-10-24 19:59:45 +02:00
Maxime “pep” Buquet
a16f670ee6 tokio-xmpp: Error out when both tls-native and tls-rust features are enabled
If the user enables the tls-rust feature and forgets to disable
default-features (which includes tls-native), tell them and bail out.

The code was made to work anyway when both are enabled, and here it
defaults to tls-native. It does seem better to have one explicitely
choose one though hence the compile_error! message.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-10-24 16:51:08 +00:00
Maxime “pep” Buquet
96f6de787f tokio-xmpp: Re-export jid structs, minidom::Element, and parsers module
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2023-08-20 21:34:04 +02:00
Paul Fariello
88ab74c92f Set tokio_xmpp::client::async_client::Config as public 2023-05-17 16:56:42 +00:00
Astro
d4a5a8247b minidom, tokio-xmpp: switch xml parsing to rxml 2022-04-19 20:42:30 +02:00
Jonas Schäfer
3cbc7ffacd Publish the starttls helper function
Without it, it seems impossible to start TLS on an XMPPStream object,
preventing any use of that object on its own (not wrapped into
AsyncClient or somesuch).
2022-02-08 20:20:27 +00:00
Maxime “pep” Buquet
fe2a94456c tokio-xmpp: remove deny(unused) as long as it breaks nightly
Find a way to make it conditional on stable or something? Is that even
possible?

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2021-09-02 03:21:56 +02:00
Astro
1e1f593233 tokio-xmpp: rustfmt 2020-05-30 00:45:22 +02:00
Astro
537b4825a8 tokio-xmpp: rename Client to AsyncClient 2020-05-30 00:43:53 +02:00
Astro
eb13634571 tokio-xmpp: rename OneshotClient to SimpleClient 2020-05-30 00:43:48 +02:00
Astro
2cd1ad217b tokio-xmpp: add onshot_client 2020-05-30 00:43:48 +02:00
Astro
c13712b158 tokio-xmpp client: condense fn connect(), refactor out into stream_features 2020-05-30 00:43:35 +02:00
Astro
a4325c787a tokio-xmpp: doc 2020-03-16 00:34:46 +01:00
Astro
23cb34e026 tokio-xmpp: rewrite for futures-0.3 2020-03-06 18:01:31 +01:00
Maxime “pep” Buquet
34aa710366
Prepare for merge: Move all tokio-xmpp files into tokio-xmpp/
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-10-18 14:16:01 +02:00
Renamed from src/lib.rs (Browse further)