https://github.com/ethancedwards8/muchrooms
https://github.com/ethancedwards8/muchrooms
Last synced: 6 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/ethancedwards8/muchrooms
- Owner: ethancedwards8
- License: agpl-3.0
- Created: 2025-09-03T00:46:40.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-09-03T00:51:24.000Z (11 months ago)
- Last Synced: 2026-07-19T01:35:23.589Z (6 days ago)
- Language: Rust
- Size: 252 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Muchrooms
This is an XMPP group chat component implementation in Rust. Its goal is to
implement MUC (XEP-0045) and GC3 (currently being written).
The name is pronounced “mushrooms”.
## License
This project is available under the AGPL-3.0-or-later license. See the LICENSE
file.
## Community
You can find the XMPP chatroom at [muchrooms@xmpp.rs](xmpp:muchrooms@xmpp.rs?join)
(requires an XMPP client).
We are using the [JoinJabber Code of
Conduct](https://joinjabber.org/about/community/codeofconduct/) for the
well-being of the community. Please refer to it in case of a conflict in any
of the muchrooms venues (channel, forge, etc.).
The mediation team is currently composed of:
- [pep@bouah.net](xmpp:pep@bouah.net) (xmpp, and mail)
## Contributing
[Contributing guidelines](CONTRIBUTING.md) are available, please do read them
before committing to help on the project.
## Checklist
### XMPP
- [x] Join
* [x] Normal sessions
* [x] MSN
- [-] Presence
* [x] Resync
* [ ] Updates
* [-] Probes (storing updates to answer probes)
- Storing presences but not answering when they're being queried, yet.
* [x] Nick changes
- [-] Iq
* [-] Ping answers
- [x] Ping component (always succeeds)
- [-] Ping room (always fails. Awaiting affiliation support)
- [x] Ping participant (0410)
* [ ] Ping probes?
* [ ] Routing Public PEP?
* [x] Default "service-unavailable"
- [ ] Messages
* [ ] Broadcast
* [ ] History?
* [ ] MAM?
- [?] Leave
- [ ] Affiliations / roles
- [ ] Configuration
* [ ] Modes
- [ ] Non-anon
- [ ] Semi-anon
- [ ] Full-anon? (with some kind of occupant-id (0421)?)
- [ ] Mediated invites
- [ ] Room state
* [ ] Locked
* [ ] Destroyed / Tombstoned?
- [ ] Private Messages?
- [ ] MUC Eventing Protocol (MEP - 0316)
- [ ] 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
### Pseudonimity
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
### Moderation
> +mz makes all messages in a channel get redirected to ops only, and other users don't see them
> it's very useful for e.g. abuse reporting channels
- Shadowbans