XMPP MUC (0045) implementation in Rust
|
||
---|---|---|
src | ||
.editorconfig | ||
.gitignore | ||
.woodpecker.yml | ||
build.rs | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
rustfmt.toml |
Muchrooms
This is a MUC component implementation in Rust.
The primary goal was to be able to write gaming chat rooms for the online (board) games, but it is growing into a more complete implementation.
The name is pronounced “mushrooms”.
License
This project is available under the AGPL-3.0-or-later license. See the LICENSE file.
Checklist
XMPP
- Join
- Normal sessions
- MSN
- [-] Presence
- Resync
- Updates
- [-] Probes (storing updates to answer probes)
- Storing presences but not answering when they're being queried, yet.
- Nick changes
- [-] Iq
- [-] Ping answers
- Ping component (always succeeds)
- [-] Ping room (always fails. Awaiting affiliation support)
- Ping participant (0410)
- Ping probes?
- Routing Public PEP?
- Default "service-unavailable"
- [-] Ping answers
- Messages
- Broadcast
- History?
- MAM?
- [?] Leave
- Affiliations / roles
- Configuration
- Modes
- Non-anon
- Semi-anon
- Full-anon? (with some kind of occupant-id (0421)?)
- Modes
- Mediated invites
- Room state
- Locked
- Destroyed / Tombstoned?
- Private Messages?
- Possible optimisations
- Presence versioning (0436)
- Room Activity Indicator (0437)
- Affiliation versioning (0463)
- Caching participant caps
Storage
- Persistent storage of room data
Component Configuration
- Interface
- File?
- Adhoc?
- Options?
- Host
- Secret
- Admins?
- ...?
To Think About
https://logs.xmpp.org/xsf/2023-01-05?p=h#2023-01-05-fe0286ff34b3de39
A MUC could pretend to be non-anon and give out burner JIDs at a companion service