A simple implementation of XMPP (Jabber with its old name) messaging protocol.
I'm following RFC 6120 directly without any external resources to get used to the RFC syntax.
Screen.Recording.2024-01-23.at.02.32.00.mov
git clone https://github.com/zetsuboii/mini-jabber
cd mini-jabber
cargo build
cargo run --bin client
cargo run --bin server
# Install sqlx-cli
cargo install sqlx-cli
echo "DATABASE_URL=sqlite:jabber.sqlite" > .env
# Create a database
sqlx database create
# Run migrations
sqlx migrate run
- XMPP handshake
- Switch to minidom crate for valid XML (used quick-xml instead)
- XMPP Messaging
- Authentication
- Resource binding
- Message delivery
- Friends list
- P2P connections with XEP 1074
- Companion mobile and CLI apps