Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hmzdot/mini-xmpp
A toy implementation of XMPP messaging protocol.
https://github.com/hmzdot/mini-xmpp
xmpp xmpp-client xmpp-server
Last synced: 6 days ago
JSON representation
A toy implementation of XMPP messaging protocol.
- Host: GitHub
- URL: https://github.com/hmzdot/mini-xmpp
- Owner: hmzdot
- Created: 2023-11-27T00:17:26.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-31T22:16:30.000Z (about 1 year ago)
- Last Synced: 2025-01-27T00:26:39.436Z (6 days ago)
- Topics: xmpp, xmpp-client, xmpp-server
- Language: Rust
- Homepage:
- Size: 203 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# mini-jabber
A simple implementation of [XMPP](https://xmpp.org/) (Jabber with its old name) messaging protocol.
I'm following [RFC 6120](https://datatracker.ietf.org/doc/rfc6120/) directly without any external
resources to get used to the RFC syntax.## Demo
https://github.com/zetsuboii/mini-jabber/assets/12009698/b0302f1f-2556-4390-bc82-9cf401dd29c1## Building
```bash
git clone https://github.com/zetsuboii/mini-jabber
cd mini-jabber
cargo build
```## Running
```bash
cargo run --bin client
cargo run --bin server
```## SQLX Cook Book
```bash
# Install sqlx-cli
cargo install sqlx-cliecho "DATABASE_URL=sqlite:jabber.sqlite" > .env
# Create a database
sqlx database create# Run migrations
sqlx migrate run
```## Roadmap
- [X] XMPP handshake
- [X] Switch to minidom crate for valid XML (used quick-xml instead)
- [X] XMPP Messaging
- [X] Authentication
- [X] Resource binding
- [X] Message delivery
- [X] Friends list
- [ ] P2P connections with [XEP 1074](https://xmpp.org/extensions/xep-0174.html)
- [ ] Companion mobile and CLI apps