Re-send the entire message history on MUC join. Contributes to #5. Reviewed-on: lavina/lavina#68 Co-authored-by: Mikhail <mikhail@liamets.dev> Co-committed-by: Mikhail <mikhail@liamets.dev> |
||
|---|---|---|
| .. | ||
| lavina-core | ||
| mgmt-api | ||
| projection-irc | ||
| projection-xmpp | ||
| proto-irc | ||
| proto-xmpp | ||
| sasl | ||
| readme.md | ||
readme.md
Dependency diagram of the project
graph TD;
lavina-->mgmt-api;
lavina-->projection-irc;
lavina-->projection-xmpp;
lavina-->lavina-core;
projection-irc-->proto-irc;
projection-irc-->lavina-core;
projection-xmpp-->proto-xmpp;
projection-xmpp-->lavina-core;
sim-irc-->proto-irc;
sim-irc-->mgmt-api;
sim-xmpp-->proto-xmpp;
sim-xmpp-->mgmt-api;
workspace-->lavina;
workspace-->sim-irc;
workspace-->sim-xmpp;
A few rules:
- Only projections should be direct deps of
lavina, there is no need to depend onproto-*crates. - On the other hand, projections should not be dependencies of
sim-*crates. lavina-coredoes not depend on protocol-specific crates.
Lavina
lavina-core. This crate implements the core functionality of the server not specific to public interfaces. It includes handling general persistence, message casts, in future room authorization and cross-node communication.
lavina. The application crate. It's used to link other crates together and build the final binary with support for all protocols.
mgmt-api. Model definitions for management API to be used both in the server and client implementations.
IRC
proto-irc. Protocol definition for IRC, includes both server-side and client-side messages and both serialization and deserialization where needed.
projection-irc. Projection of lavina-core onto the IRC client-to-server protocol implementation.
sim-irc. Future implementation of IRC client simulator to be used in integration and load testing.