echo/Cargo.toml
Jean ca95184359
BotServ BADWORDS: user-configurable regex kicker
BADWORDS <#channel> ADD|DEL|LIST|CLEAR manages a channel's badword
patterns, each a regular expression, so a channel matches whatever it
wants — an improvement over Anope's fixed ANY/SINGLE/START/END. Enable
with KICK <#channel> BADWORDS ON.

Uses the regex crate: it's finite-automata based with linear-time
matching, so untrusted user patterns can't cause catastrophic
backtracking (ReDoS). A channel's patterns compile into one RegexSet
(single-pass match against all of them), cached in the engine and rebuilt
only when the list's revision changes — so the hot path is one is_match
call, no per-message compilation or allocation. Patterns are validated
(and size-limited) at add time; matching is case-insensitive by default.
2026-07-13 16:16:44 +00:00

39 lines
1.2 KiB
TOML

[workspace]
members = ["api", "inspircd", "chanserv", "nickserv", "example", "botserv", "memoserv"]
[package]
name = "fedserv"
version = "0.0.1"
edition = "2021"
description = "Federated IRC services daemon (protocol-agnostic core, InspIRCd link first)"
[dependencies]
fedserv-api = { path = "api" }
fedserv-inspircd = { path = "inspircd" }
fedserv-chanserv = { path = "chanserv" }
fedserv-nickserv = { path = "nickserv" }
fedserv-example = { path = "example" }
fedserv-botserv = { path = "botserv" }
fedserv-memoserv = { path = "memoserv" }
tokio = { version = "1", features = ["net", "io-util", "rt-multi-thread", "macros", "time", "sync", "process"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = "0.8"
argon2 = { version = "0.5", features = ["std"] }
base64 = "0.22"
sha2 = "0.10"
hmac = "0.12"
pbkdf2 = { version = "0.12", default-features = false, features = ["hmac"] }
subtle = "2"
regex = "1"
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tokio-rustls = "0.26.4"
rustls-pemfile = "2.2.0"
tonic = { version = "0.12", features = ["tls"] }
prost = "0.13"
tokio-stream = "0.1"
[build-dependencies]
tonic-build = "0.12"