# 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 - [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? - [ ] 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