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
As the registration authority, fedserv accepts an account-registration request relayed over the server link (ACCTREGISTER), creates the account through the same store as classic NickServ REGISTER, and replies (ACCTREGRESULT) with success or an error carrying the IRCv3 FAIL code — one account-creation path for both the classic command and the draft/account-registration capability. |
||
|---|---|---|
| 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.