IRC services for InspIRCd networks, written in Rust. NickServ, ChanServ, and a dozen more, backed by an append-only event log instead of a database.
https://echo.dev.tronic.pro
| src | ||
| testing | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| config.example.toml | ||
| README.md | ||
fedserv
A federated IRC services daemon in Rust. Protocol-agnostic core, InspIRCd link first.
Clean-room — inspired by the ideas behind modern event-log/gossip services, not derived from any project's source.
Design
proto/— the ircd link layer. AProtocoltrait maps raw server-to-server lines to/from a normalizedNetEvent/NetActionmodel. The engine never touches a raw line, so a new ircd = one new module. InspIRCd is the first.engine/— the services engine: live networkstate, anEventLog(every persistent change is anEvent; state is a fold over the log — this is what makes replicating across nodes a later addition, not a rewrite), and theServicetrait.services/— the pseudo-clients: NickServ first, then ChanServ / OperServ / …
Run
cp config.example.toml config.toml # edit uplink + link password
cargo run -- config.toml
Status
Early scaffold: links to an InspIRCd uplink and introduces NickServ. Burst/mode handling and account persistence are next.