69 lines
3.6 KiB
HTML
69 lines
3.6 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}echoIRCd — a from-scratch IRC server in Rust{% endblock %}
|
|
{% block content %}
|
|
<section class="hero">
|
|
<div class="hero-in">
|
|
<div class="hero-main">
|
|
<p class="eyebrow">IRC daemon · written in Rust</p>
|
|
<h1>The from-scratch<br>IRC server.</h1>
|
|
<p class="hero-sub">echoIRCd is a modern IRC daemon, built from the ground up in Rust — full
|
|
IRCv3, modern TLS, and SASL. No forks. No C. No <code>unsafe</code>. Pair it with
|
|
<a href="/services">echo services</a>, a separate package linked over S2S.</p>
|
|
<div class="cta">
|
|
<a class="btn btn-primary" href="/connect">Connect to the network</a>
|
|
<a class="btn btn-ghost" href="/features">See the features</a>
|
|
</div>
|
|
</div>
|
|
|
|
<aside class="statuscard" aria-label="live network status">
|
|
<div class="sc-head"><span class="sc-title">network status</span>
|
|
{% if status.online %}<span class="dot on" title="online"></span>{% else %}<span class="dot off" title="offline"></span>{% endif %}
|
|
</div>
|
|
<dl class="sc-rows">
|
|
<div><dt>state</dt><dd>{% if status.online %}<b class="live">online</b>{% else %}<b class="down">offline</b>{% endif %}</dd></div>
|
|
<div><dt>users</dt><dd>{{ status.users }}</dd></div>
|
|
<div><dt>channels</dt><dd>{{ status.channels }}</dd></div>
|
|
<div><dt>network</dt><dd>echoiRCd</dd></div>
|
|
<div><dt>version</dt><dd>echoIRCd {{ status.version }}</dd></div>
|
|
<div><dt>tls</dt><dd>1.3 · X25519MLKEM768</dd></div>
|
|
</dl>
|
|
<div class="sc-foot">live from <code>irc.echoircd.org</code></div>
|
|
</aside>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="band">
|
|
<div class="wrap">
|
|
<h2 class="h-center">Why echoIRCd</h2>
|
|
<div class="cards">
|
|
<div class="fcard"><h3>Safe by construction</h3><p><code>#![forbid(unsafe_code)]</code> across the whole tree, enforced in CI. Original code — not a fork of anything.</p></div>
|
|
<div class="fcard"><h3>Full IRCv3</h3><p>server-time, message-tags, account-tag, batch, labeled-response, chathistory, multiline, standard-replies and more.</p></div>
|
|
<div class="fcard"><h3>Modern TLS</h3><p>Direct TLS and WebSocket, OpenSSL & rustls backends, TLS 1.3 with post-quantum X25519MLKEM768, per-host SNI.</p></div>
|
|
<div class="fcard"><h3>SASL, incl. ECDSA</h3><p>PLAIN, EXTERNAL, SCRAM-SHA-256, and ECDSA-NIST256P-CHALLENGE — sign a challenge, no password on the wire.</p></div>
|
|
<div class="fcard"><h3>Companion services</h3><p><a href="/services">echo services</a> is a <b>separate</b> package — NickServ, ChanServ and more — that links to the daemon over S2S. It is not built in.</p></div>
|
|
<div class="fcard"><h3>Anti-abuse built in</h3><p>A native security engine: connection & nick-flood detection, behavioral/content heuristics, DEFCON, DNSBL/MX screening.</p></div>
|
|
</div>
|
|
<p class="h-center more"><a href="/features">Everything that's inside →</a></p>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="wrap latest">
|
|
<h2>Latest</h2>
|
|
<ul class="news">
|
|
{% for c in commits %}
|
|
<li>
|
|
<span class="news-date">{{ c.date }}</span>
|
|
<div><a href="{{ c.url }}"><code>{{ c.short }}</code></a> — {{ c.subject }}</div>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
<p class="h-center more"><a href="/docs/changelog">Full changelog →</a></p>
|
|
</section>
|
|
|
|
<section class="ctaband">
|
|
<div class="wrap ctaband-in">
|
|
<div><h2>Ready to connect?</h2><p class="mono-line">irc.echoircd.org · +6697 · TLS 1.3</p></div>
|
|
<a class="btn btn-primary" href="/connect">Get connected</a>
|
|
</div>
|
|
</section>
|
|
{% endblock %}
|