Reorganize protocol and pseudoclients into a modules/ tree
The core stays in src/; protocol and pseudoclients move to modules/, pulled in with #[path].
This commit is contained in:
parent
dbc45a0b6a
commit
677963924a
11 changed files with 43 additions and 17 deletions
19
README.md
19
README.md
|
|
@ -7,14 +7,19 @@ derived from any project's source.
|
|||
|
||||
## Design
|
||||
|
||||
- **`proto/`** the ircd link layer. A `Protocol` trait maps raw server-to-server
|
||||
lines to and from a normalized `NetEvent`/`NetAction` model, so the engine never
|
||||
touches a raw line and a new ircd is one new module. InspIRCd is the first.
|
||||
- **`engine/`** the services engine: live network `state`, the account store, and
|
||||
the `Service` trait. The store is event-sourced: every change is an `Event`
|
||||
The core lives in `src/`; the pluggable parts live in `modules/` (see
|
||||
`modules/README.md`).
|
||||
|
||||
- **`src/engine/`** the services engine: live network `state`, the account store,
|
||||
and the `Service` trait. The store is event-sourced: every change is an `Event`
|
||||
appended to a per-node log, and state is a fold over that log.
|
||||
- **`gossip/`** node-to-node replication over the logs.
|
||||
- **`services/`** the pseudo-clients: NickServ first, then ChanServ / OperServ.
|
||||
- **`src/gossip.rs`** node-to-node replication over the logs.
|
||||
- **`modules/protocol/`** the ircd link layer. A `Protocol` trait maps raw
|
||||
server-to-server lines to and from a normalized `NetEvent`/`NetAction` model, so
|
||||
the engine never touches a raw line and a new ircd is one new module. InspIRCd is
|
||||
the first.
|
||||
- **`modules/nickserv/`, `modules/chanserv/`** the pseudo-clients, one directory
|
||||
each. OperServ and others follow the same shape.
|
||||
|
||||
## Replication
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue