docs: rework README + manual — refresh the feature set (services interface, rustls TLS backend, WebSocket, PROXY v1/v2, metrics + JSON-RPC endpoints), correct command/module/cap counts, and document the tls_backend/metrics_bind/rpc/sts config keys in configuration.md and the example

This commit is contained in:
Jean Chevronnet 2026-08-19 14:37:22 +00:00
parent b106b66de5
commit ebd6e29589
No known key found for this signature in database
GPG key ID: 439666D63A9477E4
9 changed files with 121 additions and 98 deletions

View file

@ -1,15 +1,14 @@
# echoIRCd documentation
echoIRCd is a from-scratch IRC + IRCv3 server written in safe Rust
(`#![forbid(unsafe_code)]`) with two dependencies — `openssl` for TLS and `mio`
for the socket engine. A single lock-free core thread owns all state; a pool of
reactor threads drives the connections around it.
echoIRCd is a memory-safe IRC + IRCv3 server written in Rust. A single lock-free
core thread owns all state; a pool of epoll reactor threads drives the connections
around it — TLS crypto and all — with no async runtime.
This folder is the reference manual. Start with whichever fits what you're doing:
| Doc | What's in it |
|-----|--------------|
| [Building & running](building.md) | Prerequisites, debug/release builds, tests, the originality guard, project layout. |
| [Building & running](building.md) | Prerequisites, debug/release builds, tests, project layout. |
| [Configuration](configuration.md) | The config file format and a grouped reference of every setting. |
| [Architecture](architecture.md) | The single-threaded core + reactor-pool design, the I/O models, resilience, and memory safety. Read this to understand *why* it's built the way it is. |
| [Channel & user modes](modes.md) | Every prefix, list, parameter, and flag mode, plus extbans. |
@ -23,7 +22,7 @@ This folder is the reference manual. Start with whichever fits what you're doing
## At a glance
- **Full IRC core** — registration, channels, messaging, and the informational
command set (~130 commands total).
command set (100+ commands total).
- **Complete mode set** — the standard prefixes plus a staff prefix, list modes,
keyed/limit/flood/redirect/history/anticaps parameters, the full flag set, and
matching + acting extbans. See [modes](modes.md).
@ -33,10 +32,13 @@ This folder is the reference manual. Start with whichever fits what you're doing
- **Operators & services** — a rich oper toolbox with oper levels, X-lines
persisted to disk, and a services interface (SASL over links, the `SVS*` /
`ENCAP` / `METADATA` set, account-gated modes).
- **Transports** — plaintext, TLS (with client-cert fingerprints), a native
WebSocket layer, and the PROXY protocol behind a load balancer.
- **Transports** — plaintext, TLS (OpenSSL or rustls backend, with client-cert
fingerprints), a native WebSocket layer, and the PROXY protocol behind a load
balancer.
- **Security** — keyed host cloaking, DNSBL, GeoIP, layered connection/message
flood limits, and script/gibberish spam detection.
- **Control & observability** — a token-authenticated JSON-RPC plane over HTTP and
an optional OpenMetrics/Prometheus endpoint. See [configuration](configuration.md).
## Design in one paragraph