- Rust 100%
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| data | ||
| specs | ||
| src | ||
| .editorconfig | ||
| .gitea | ||
| .gitignore | ||
| .woodpecker.yml | ||
| build.rs | ||
| Cargo.toml | ||
| Changelog.md | ||
| CONTRIBUTING.md | ||
| doap.xml | ||
| LICENSE | ||
| muchrooms.example.toml | ||
| README.md | ||
| rustfmt.toml | ||
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 [email protected] (requires an XMPP client).
We are using the JoinJabber Code of Conduct 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:
- [email protected] (xmpp, and mail)
Funding
This project is funded through NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program. Learn more at the NLnet project page.
Contributing
Contributing guidelines are available, please do read them before committing to help on the project.
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?
- 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
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
