Skip to content

A toy implementation of XMPP messaging protocol.

Notifications You must be signed in to change notification settings

zetsuboii/mini-xmpp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mini-jabber

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.

Demo

Screen.Recording.2024-01-23.at.02.32.00.mov

Building

git clone https://github.com/zetsuboii/mini-jabber
cd mini-jabber
cargo build

Running

cargo run --bin client
cargo run --bin server

SQLX Cook Book

# 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

Roadmap

  • 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

About

A toy implementation of XMPP messaging protocol.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages