operprefix + ojoin: server oper prefix (!/mode y, above owner) auto-granted to opers + OJOIN command

This commit is contained in:
Jean Chevronnet 2026-08-10 10:05:37 +00:00
parent 8ebb106f97
commit 1dd7f77ca8
106 changed files with 687 additions and 711 deletions

View file

@ -2,7 +2,7 @@
name = "echoircd"
version = "0.1.0"
edition = "2021"
description = "A small, dependency-light IRC daemon in Rust — InspIRCd-inspired command/module API."
description = "A small, dependency-light IRC daemon in Rust with a modular command/mode/module API."
license = "MIT"
[[bin]]
@ -14,12 +14,11 @@ name = "echoircd"
path = "src/lib.rs"
[dependencies]
# TLS backend (InspIRCd ships ssl_openssl / ssl_gnutls as modules; this is our
# openssl backend — the crate keeps all `unsafe` internal, so the daemon stays
# `#![forbid(unsafe_code)]`). A pure-Rust `rustls` backend can slot in beside it.
# TLS backend: openssl. The crate keeps all `unsafe` internal, so the daemon
# stays `#![forbid(unsafe_code)]`. A pure-Rust `rustls` backend can slot in beside it.
openssl = "0.10"
# epoll/kqueue reactor for the client socket engine — the minimal readiness layer
# Tokio itself is built on. Lets one thread drive tens of thousands of connections
# epoll/kqueue reactor for the client socket engine — a minimal readiness layer
# (no async runtime). Lets one thread drive tens of thousands of connections
# instead of 2 OS threads per client. Its `unsafe` stays internal (like openssl),
# so the daemon is still `#![forbid(unsafe_code)]`; no async runtime is pulled in.
mio = { version = "1", features = ["os-poll", "net"] }