echo/modules
Jean 931b8727e9
modules: extract fedserv-api leaf crate (protocol + service vocabulary)
Move NetEvent/NetAction/RegReply/Protocol and Sender/ServiceCtx into a
dependency-free fedserv-api crate that a module builds against. Core keeps
referring to them through re-export shims at crate::proto and
crate::engine::service, so no consumer changes. Groundwork for external
service and protocol modules.
2026-07-13 00:36:42 +00:00
..
chanserv nickserv: add INFO and ALIST 2026-07-12 14:19:29 +00:00
nickserv email: optional logo image in the header 2026-07-12 16:36:06 +00:00
protocol modules: extract fedserv-api leaf crate (protocol + service vocabulary) 2026-07-13 00:36:42 +00:00
README.md Move the ChanServ MODE command into modules/chanserv/mode.rs 2026-07-12 10:46:27 +00:00

modules/

The pluggable parts of fedserv: one directory per protocol and per pseudoclient. The core (engine, event log, gossip, link loop) stays in ../src/.

modules/
  protocol/     ircd link protocols   (inspircd.rs)
  nickserv/     NickServ pseudoclient
  chanserv/     ChanServ pseudoclient

src/main.rs pulls each in with #[path = "../modules/..."], so crate paths stay flat (crate::proto, crate::nickserv, crate::chanserv).

Naming

A service directory holds its pseudoclient file plus, as commands are split out, one file per command: register.rs, mode.rs, etc.