3 releases
Uses old Rust 2015
0.1.2 | Apr 8, 2017 |
---|---|
0.1.1 | Apr 6, 2017 |
0.1.0 | Mar 23, 2017 |
#18 in #xmpp
4KB
xmpp-rs
xmpp-rs
is an XMPP client library (for now). Under active development.
Install
This library is splitted in 3 crates (client
, server
, proto
). As defined by the naming, you can use every crate
independently.
xmpp-client
: will allow you to build a client.xmpp-server
: is an implementation of XMPP on server side.xmpp-rs
: Grab both client and server in a single crate.
Cargo.toml
xmpp-rs = "0.1"
// Client
extern crate xmpp;
Build
To build xmpp-rs:
cargo build --release
ROADMAP
Client roadmap
- 🚀 Root implementation
- TCP Connection: Base of all the interaction, we need to provide a way to connect to different kind of
servers.
- Can connect to IP
- Can connect to domain
- Can connect to untrusted domain
- TLS Connection and negociation: TLS connection is mandatory.
- PLAIN authentication: Authentification with a PLAIN mechanism must be possible.
- Ping IQ client: We need to be able to send a ping to the server and listen for the anwser.
- Send First presence: We need to be able to send our presence to the server.
- TCP Connection: Base of all the interaction, we need to provide a way to connect to different kind of
servers.
- 📡 Components
- SASL: Handle every needed SASL auth mechanisms
- 🔌 Plugins
- Message: Handle all incomming/outcomming user or server message.
- IQ: Handle all IQ requests/responses.
- Presence: Offer a way to manage user's presence.
- MUC: Activation option to deal with groupchat.
- MAM: Activation option to retrieve history.
Server roadmap
- 🚀 Root implementation
- TCP Connection: Able to accept TCP connection from clients
- Open stream reading: Listen to an open
stream
stanza and respond to it
XEPs
- XEP-0199: XMPP Ping
- XEP-0004: Data Forms
- XEP-0030: Service Discovery
- XEP-0048: Bookmarks
- XEP-0049: Private XML Storage
License
xmpp-rs is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.
See LICENSE-APACHE, and LICENSE-MIT for details.
Dependencies
~9–17MB
~222K SLoC