Reading — step 1 of 5
Read
~1 min readServer Architecture
History & Bouncers
IRC has no native message history. Connect, miss messages while offline.
Bouncers (BNCs):
- A persistent connection to IRC, on YOUR behalf.
- Stays connected; buffers messages while you're disconnected.
- You connect to the BNC; it relays your buffered messages.
- Examples: ZNC, soju, gamja, weechat-relay.
You ←→ Phone IRC client ←┐
├→ ZNC ←→ Libera.Chat
You ←→ Desktop client ←┘
ZNC features:
- Persistent connection per network.
- Per-user accounts.
- Modules: chat history, log search, password storage.
- Web admin interface.
IRCv3 message history:
chathistorycapability (newer): client requests history range from server.- Servers like Ergo and soju implement.
- Backed by SQLite or external store.
- Client sends
CHATHISTORY LATEST #channel timestamp=2024-01-01T00:00:00Z 50→ 50 messages.
External archives:
- Bots that log channels (logbot).
- Indexed via Elasticsearch / SQLite.
- Searchable web archives (e.g. logs.libera.chat).
Matrix bridges:
- Matrix (homeserver) ↔ IRC (network).
- Matrix has message history natively.
- Bridge translates messages bidirectionally.
- Many open-source projects use Matrix as primary, IRC as legacy access.
Mobile / async:
- Old IRC was bound to "always-on" expectation.
- Modern apps (Quassel, IRCCloud) embraced bouncer-style — server-side state, mobile clients pull current view.
- IRCCloud is a SaaS bouncer.
Tab completion + UX:
- Modern clients auto-complete nicks, channel names.
- Highlight on mention.
- Per-channel notification settings.
Clients:
- HexChat (cross-platform GUI).
- WeeChat (TUI).
- irssi (TUI, mature).
- Quassel (split client+core, bouncer-included).
- IRCCloud (web/mobile, paid).
- Konversation, mIRC (legacy).
For most users today: Matrix is what IRC would have evolved to.
Discussion
Ask a question, share an insight, or help someone who’s stuck.
Sign in to post a comment or reply.
Loading…