68 lines
2.2 KiB
Rust
68 lines
2.2 KiB
Rust
//! Low-level [XMPP](https://xmpp.org/) decentralized instant messaging & social networking implementation with asynchronous I/O using [tokio](https://tokio.rs/).
|
|
//!
|
|
//! For an easier, batteries-included experience, try the [xmpp crate](https://docs.rs/xmpp).
|
|
//!
|
|
//! # Getting started
|
|
//!
|
|
//! In most cases, you want to start with a [`Client`], that will connect to a server over TCP/IP with StartTLS encryption. Then, you can build an event loop by calling the client's `next` method repeatedly. You can find a more complete example in the [examples/echo_bot.rs](https://gitlab.com/xmpp-rs/xmpp-rs/-/blob/main/tokio-xmpp/examples/echo_bot.rs) file in the repository.
|
|
//!
|
|
//! # Features
|
|
//!
|
|
//! This library is not feature-complete yet. Here's a quick overview of the feature set.
|
|
//!
|
|
//! Supported implementations:
|
|
//! - [x] Clients
|
|
//! - [x] Components
|
|
//! - [ ] Servers
|
|
//!
|
|
//! Supported transports:
|
|
//! - [x] Plaintext TCP (IPv4/IPv6)
|
|
//! - [x] StartTLS TCP (IPv4/IPv6 with [happy eyeballs](https://en.wikipedia.org/wiki/Happy_Eyeballs) support)
|
|
//! - [x] Custom connectors via the [`connect::ServerConnector`] trait
|
|
//! - [ ] Websockets
|
|
//! - [ ] BOSH
|
|
//!
|
|
//! # More information
|
|
//!
|
|
//! You can find more information on our website [xmpp.rs](https://xmpp.rs/) or by joining our chatroom [chat@xmpp.rs](xmpp:chat@xmpp.rs?join).
|
|
|
|
#![deny(unsafe_code, missing_docs, bare_trait_objects)]
|
|
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
|
|
|
|
#[cfg(all(
|
|
not(xmpprs_doc_build),
|
|
not(doc),
|
|
feature = "tls-native",
|
|
feature = "tls-rust"
|
|
))]
|
|
compile_error!("Both tls-native and tls-rust features can't be enabled at the same time.");
|
|
|
|
#[cfg(all(
|
|
feature = "starttls",
|
|
not(feature = "tls-native"),
|
|
not(feature = "tls-rust")
|
|
))]
|
|
compile_error!(
|
|
"when starttls feature enabled one of tls-native and tls-rust features must be enabled."
|
|
);
|
|
|
|
mod event;
|
|
pub use event::Event;
|
|
mod client;
|
|
pub mod connect;
|
|
pub mod proto;
|
|
|
|
pub use client::async_client::Client;
|
|
mod component;
|
|
pub use crate::component::Component;
|
|
/// Detailed error types
|
|
pub mod error;
|
|
|
|
#[doc(inline)]
|
|
/// Generic tokio_xmpp Error
|
|
pub use crate::error::Error;
|
|
|
|
// Re-exports
|
|
pub use minidom;
|
|
pub use xmpp_parsers as parsers;
|
|
pub use xmpp_parsers::jid;
|