diff --git a/crates/README.md b/crates/README.md new file mode 100644 index 0000000..04909f2 --- /dev/null +++ b/crates/README.md @@ -0,0 +1,30 @@ +## Dependency diagram of the project + +```mermaid +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 on `proto-*` crates. +- On the other hand, projections should not be dependencies of `sim-*` crates. +- `lavina-core` does not depend on protocol-specific crates.