redesign: irc-client / terminal aesthetic — buffer, nicklist, cap-ls grammar
This commit is contained in:
parent
899040a319
commit
182f14a7f2
6 changed files with 264 additions and 321 deletions
|
|
@ -1,93 +1,28 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}echoIRCd — a modern IRC network in Rust{% endblock %}
|
||||
{% block content %}
|
||||
<section class="hero">
|
||||
<div class="badge-row">
|
||||
<span class="badge">100% safe Rust</span>
|
||||
<span class="badge">TLS 1.3 · post-quantum</span>
|
||||
<span class="badge">Full IRCv3</span>
|
||||
<span class="badge">SASL</span>
|
||||
{% block title %}echoIRCd — a native-Rust IRC network{% endblock %}
|
||||
{% block topic %}#home — echoIRCd, a native-Rust IRC daemon & services · no fork · no C · no unsafe{% endblock %}
|
||||
{% block chan %}#home{% endblock %}
|
||||
{% block cmd %}/connect{% endblock %}
|
||||
{% block buffer %}
|
||||
<div class="banner">
|
||||
<div class="wordmark">echo<span class="w-hi">IRCd</span><span class="cur cur-lg">▋</span></div>
|
||||
<div class="w-sub">an IRC network written from scratch in Rust — built, not forked</div>
|
||||
</div>
|
||||
<h1>A modern IRC network,<br>built from scratch in <span class="accent">Rust</span>.</h1>
|
||||
<p class="lede">echoIRCd is an original IRC daemon and services suite — no forks, no C, no
|
||||
<span class="mono">unsafe</span>. Full IRCv3, modern TLS, server-to-server linking, and a
|
||||
complete services stack with accounts, channels, and SASL.</p>
|
||||
<div class="cta">
|
||||
<a class="btn primary" href="/connect">Connect now</a>
|
||||
<a class="btn" href="/features">Explore features</a>
|
||||
</div>
|
||||
<div class="connectline mono">/server irc.echoircd.org +6697</div>
|
||||
</section>
|
||||
|
||||
<section class="split">
|
||||
<div class="card">
|
||||
<h3>echoIRCd <span class="tag">the daemon</span></h3>
|
||||
<p>A single-threaded core with an epoll reactor pool and a module-per-file architecture.
|
||||
The full channel and user mode set, host cloaking, connection classes, PROXY protocol,
|
||||
ident, and an InspIRCd-style operator privilege system.</p>
|
||||
</div>
|
||||
<div class="card">
|
||||
<h3>echo <span class="tag">the services</span></h3>
|
||||
<p>NickServ, ChanServ, OperServ, MemoServ and more, linked over a standard server-to-server
|
||||
protocol. Account registration, vhosts, grouped nicks, memos and SASL — all backed by an
|
||||
event-sourced store.</p>
|
||||
</div>
|
||||
</section>
|
||||
<div class="ln"><span class="t">19:28</span><span class="g dim">-!-</span><span class="m dim">Now talking on <b>#home</b></span></div>
|
||||
<div class="ln"><span class="t">19:28</span><span class="g dim">-!-</span><span class="m dim">echoIRCd/5.0.0 · irc.echoircd.org · network echoiRCd · <span class="ok">+6697 TLS1.3</span></span></div>
|
||||
<div class="ln"><span class="t">19:28</span><span class="g n-green">--></span><span class="m dim">you (~guest@echoircd.org) has joined <b>#home</b></span></div>
|
||||
<div class="ln"><span class="t">19:29</span><span class="g n-amber"><echoircd></span><span class="m">hey — you're looking at an IRC network written from the ground up in Rust.</span></div>
|
||||
<div class="ln"><span class="t">19:29</span><span class="g n-amber"><echoircd></span><span class="m">original code: no InspIRCd fork, no C, and <span class="kw">#![forbid(unsafe_code)]</span> across the whole tree.</span></div>
|
||||
<div class="ln"><span class="t">19:29</span><span class="g n-amber"><echoircd></span><span class="m">the daemon speaks full IRCv3 and modern TLS; services handle accounts, channels and SASL.</span></div>
|
||||
<div class="ln"><span class="t">19:30</span><span class="g">*</span><span class="m i">echoircd slides the tabs your way — <b>#features</b> for the tech, <b>#connect</b> to join</span></div>
|
||||
<div class="ln"><span class="t">19:30</span><span class="g n-cyan"><you></span><span class="m">nice. how do I get on?</span></div>
|
||||
<div class="ln"><span class="t">19:30</span><span class="g n-amber"><echoircd></span><span class="m"><a href="/connect">/connect</a> — or open <a href="https://orbit.devtronic.pro">the web client</a> right in your browser.</span></div>
|
||||
|
||||
<section class="wrap">
|
||||
<h2 class="section-title">What's inside</h2>
|
||||
<div class="grid">
|
||||
<div class="feat">
|
||||
<div class="ico">🔒</div>
|
||||
<h4>Modern TLS</h4>
|
||||
<p>Direct TLS on 6697 and WebSocket (wss) on 7799. OpenSSL <em>and</em> rustls backends,
|
||||
TLS 1.3 with post-quantum X25519MLKEM768, and per-host SNI certificates.</p>
|
||||
</div>
|
||||
<div class="feat">
|
||||
<div class="ico">⚡</div>
|
||||
<h4>Full IRCv3</h4>
|
||||
<p>server-time, message-tags, account-tag, extended-join, batch, labeled-response,
|
||||
chathistory, multiline, setname, standard-replies, metadata and more.</p>
|
||||
</div>
|
||||
<div class="feat">
|
||||
<div class="ico">🔑</div>
|
||||
<h4>SASL</h4>
|
||||
<p>PLAIN, EXTERNAL (certificate fingerprint), SCRAM-SHA-256, and
|
||||
ECDSA-NIST256P-CHALLENGE — sign a challenge with your key, no password on the wire.</p>
|
||||
</div>
|
||||
<div class="feat">
|
||||
<div class="ico">🤖</div>
|
||||
<h4>Services</h4>
|
||||
<p>Accounts, channels, vhosts, memos and games over a standard S2S link, with SASL relayed
|
||||
mechanism-agnostically to the services layer.</p>
|
||||
</div>
|
||||
<div class="feat">
|
||||
<div class="ico">🛡</div>
|
||||
<h4>Anti-abuse</h4>
|
||||
<p>A native security subsystem: connection and nick-flood detection, behavioral and content
|
||||
heuristics, DEFCON states, and DNSBL / MX screening.</p>
|
||||
</div>
|
||||
<div class="feat">
|
||||
<div class="ico">🌐</div>
|
||||
<h4>Localized</h4>
|
||||
<p>Server-wide locale catalogs translate numerics and service replies at a single chokepoint.
|
||||
English stays zero-cost; switch locales on rehash.</p>
|
||||
</div>
|
||||
<div class="quickfacts">
|
||||
<a class="qf" href="/features"><span class="qf-k">tls</span> 1.3 · post-quantum</a>
|
||||
<a class="qf" href="/features"><span class="qf-k">ircv3</span> full cap set</a>
|
||||
<a class="qf" href="/features"><span class="qf-k">sasl</span> incl. ecdsa</a>
|
||||
<a class="qf" href="/features"><span class="qf-k">unsafe</span> 0 lines</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="connect-strip">
|
||||
<div class="cs-in">
|
||||
<div>
|
||||
<h2>Jump in.</h2>
|
||||
<p>Point any IRC client at the network and say hello.</p>
|
||||
</div>
|
||||
<table class="mini">
|
||||
<tr><td>Server</td><td class="mono">irc.echoircd.org</td></tr>
|
||||
<tr><td>TLS</td><td class="mono">6697</td></tr>
|
||||
<tr><td>WebSocket</td><td class="mono">7799 (wss)</td></tr>
|
||||
<tr><td>Network</td><td class="mono">echoiRCd</td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue