modules: [modules] config + example service crate + SDK guide

A [modules] block selects which services start (default: NickServ + ChanServ);
main.rs constructs each compiled-in module only when named, so a node can run a
subset and optional modules ship dormant. Add fedserv-example, a minimal
read-only Service that depends on fedserv-api alone -- the template a new
pseudo-client is copied from, enabled by adding "example" to the config.
MODULES.md documents writing and registering a service or protocol module.
This commit is contained in:
Jean Chevronnet 2026-07-13 01:48:09 +00:00
parent 596630df53
commit e0bb3a1fea
No known key found for this signature in database
9 changed files with 254 additions and 7 deletions

View file

@ -27,6 +27,9 @@ workspace, each depending only on the `fedserv-api` SDK crate.
pseudo-clients, each a crate implementing `Service`. OperServ and others follow
the same shape.
Writing your own module — a service or a new ircd protocol — is documented in
[MODULES.md](MODULES.md); `example/` is a minimal service to copy from.
## Replication
Each log entry carries an `origin`, a per-origin `seq`, and a Lamport clock. Peers