<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ilmari Lauhakangas</title>
    <link>https://www.ilmarilauhakangas.fi/</link>
    <description>Recent content on Ilmari Lauhakangas</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-gb</language>
    <copyright>Copyright © 2021, Ilmari Lauhakangas.</copyright>
    <lastBuildDate>Thu, 15 Jan 2026 11:00:06 +0300</lastBuildDate><atom:link href="https://www.ilmarilauhakangas.fi/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>IRC technology news from the second half of 2025</title>
      <link>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2025/</link>
      <pubDate>Thu, 15 Jan 2026 11:00:06 +0300</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2025/</guid>
      <description>&lt;p&gt;I have to start this edition of IRC news by addressing a worrying trend affecting software development globally.&lt;/p&gt;
&lt;p&gt;If you are wondering, why your project is no longer listed, one reason might be excessive use of gen AI in development. If I see a bunch of AI-driven mega-commits, I lose trust in your development process and can’t in good conscience write about your project.&lt;/p&gt;
&lt;p&gt;The chances of getting your project covered here increase by not using gen AI, by having an AI policy and writing informative commit messages. For transparency in general, it would be nice, if developers always disclosed gen AI use in commit messages or at least clearly mentioned in the readme that gen AI has been used.&lt;/p&gt;
&lt;p&gt;Writing these posts has always involved going through hundreds of repositories in search of noteworthy new projects. Unfortunately, with the rise of vibe-coded projects this has now become infeasible. I don’t have motivation to write about vibe-coded software and thus what used to be a fun treasure hunt became a depressing exercise in code review this time around. Going forward, I will have to rely on tips from others, so feel free to &lt;a href=&#34;mailto:ilmari.lauhakangas@libreoffice.org&#34;&gt;email me&lt;/a&gt;, if you happen upon any real projects. A nice way to contribute can be to propose the addition of an AI policy to any project that is meant for general use.&lt;/p&gt;
&lt;h3 id=&#34;protocol-specifications&#34;&gt;Protocol specifications&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/IRCv3.svg&#34;
    alt=&#34;IRCv3 logo&#34; width=&#34;80&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;An &lt;code&gt;ISUPPORT&lt;/code&gt; token for advertising a &lt;a href=&#34;https://ircv3.net/specs/extensions/network-icon&#34;&gt;network icon&lt;/a&gt; was added, the &lt;a href=&#34;https://ircv3.net/specs/extensions/metadata&#34;&gt;metadata&lt;/a&gt; spec received many updates and &lt;a href=&#34;https://ircv3.net/specs/extensions/message-redaction&#34;&gt;message redaction&lt;/a&gt; was clarified regarding client compliance.&lt;/p&gt;
&lt;h3 id=&#34;documentation&#34;&gt;Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://modern.ircdocs.horse/&#34;&gt;Modern IRC Client Protocol&lt;/a&gt; docs received fixes to &lt;code&gt;ERR_BADCHANMASK&lt;/code&gt; and &lt;code&gt;RPL_NOTOPIC&lt;/code&gt;. &lt;code&gt;ISUPPORT&lt;/code&gt; key syntax was relaxed to allow vendor prefixes.&lt;/p&gt;
&lt;h3 id=&#34;mobile-clients&#34;&gt;Mobile clients&lt;/h3&gt;
&lt;h4 id=&#34;goguma&#34;&gt;&lt;a href=&#34;https://codeberg.org/emersion/goguma&#34;&gt;goguma&lt;/a&gt; - for mobile Linux, iOS and Android&lt;/h4&gt;
&lt;p&gt;Mentions are now more visible, unsent text gets saved, network disconnections don’t disrupt message typing, you can reply to your own messages, an audio recorder is now available, reactions UI was expanded, emoji-only messages are shown with a bigger font, the password field contents can be made visible and audio links can be previewed.&lt;/p&gt;
&lt;h4 id=&#34;irccloud&#34;&gt;&lt;a href=&#34;https://www.irccloud.com/&#34;&gt;IRCCloud&lt;/a&gt; - connect to any IRC server out there, and even Slack workspaces&lt;/h4&gt;
&lt;p&gt;The iOS app now supports the multiple windows and menu bar found in iPadOS 26.&lt;/p&gt;
&lt;h4 id=&#34;weechatrn&#34;&gt;&lt;a href=&#34;https://github.com/mhoran/weechatRN&#34;&gt;WeechatRN&lt;/a&gt; -  WeeChat relay client for mobile using WebSockets&lt;/h4&gt;
&lt;p&gt;A button to scroll down is now displayed after having scrolled up in the buffer and compatibility fixes were made for iOS 26.&lt;/p&gt;
&lt;h3 id=&#34;web-clients&#34;&gt;Web clients&lt;/h3&gt;
&lt;h4 id=&#34;kiwiirc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwiirc&#34;&gt;KiwiIRC&lt;/a&gt; – uses static files and supports theming and plugins (JavaScript)&lt;/h4&gt;
&lt;p&gt;The UI was made more mobile-friendly.&lt;/p&gt;
&lt;h4 id=&#34;the-lounge&#34;&gt;&lt;a href=&#34;https://thelounge.chat/&#34;&gt;The Lounge&lt;/a&gt; - modern web client utilising Node.js&lt;/h4&gt;
&lt;p&gt;The performance of user configuration reloading was optimised.&lt;/p&gt;
&lt;h3 id=&#34;desktop-clients&#34;&gt;Desktop clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/polari_search.png&#34;
    alt=&#34;Search in Polari&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Search in Polari&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;circe&#34;&gt;&lt;a href=&#34;https://github.com/emacs-circe/circe&#34;&gt;Circe&lt;/a&gt; - a client for IRC in Emacs&lt;/h4&gt;
&lt;p&gt;IRCv3 features &lt;code&gt;SETNAME&lt;/code&gt;, &lt;code&gt;standard-replies&lt;/code&gt;, &lt;code&gt;chghost&lt;/code&gt;, &lt;code&gt;message-tags&lt;/code&gt; and &lt;code&gt;server-time&lt;/code&gt; were implemented and IRC parsing speed was greatly improved.&lt;/p&gt;
&lt;h4 id=&#34;halloy&#34;&gt;&lt;a href=&#34;https://halloy.chat/&#34;&gt;Halloy&lt;/a&gt; – cross-platform client written in Rust&lt;/h4&gt;
&lt;p&gt;Halloy offers finegrained configuration and many of the numerous changes during this season focused on that, including tweaking previews, using Emacs-like keybindings for text input, specifying distinct sounds for highlight sets and the ability to hide various messages. Other additions were support for &lt;code&gt;soju.im/bouncer-networks&lt;/code&gt; for better experience with soju bouncer, a &lt;code&gt;/clear&lt;/code&gt; command to clear buffers, a notification indicator for updates and file transfers, fuzzy matching in command bar search, marking of messages that failed to be sent with the ability to delete them or re-send on servers with &lt;code&gt;echo-message&lt;/code&gt; support, a buffer to view all channels on a server using &lt;code&gt;LIST&lt;/code&gt; and filtering of users and messages using regular expressions.&lt;/p&gt;
&lt;h4 id=&#34;irken&#34;&gt;&lt;a href=&#34;https://codeberg.org/dlowe/irken&#34;&gt;Irken&lt;/a&gt; – a small, modular client written in Tcl/Tk&lt;/h4&gt;
&lt;p&gt;Client certificates can now be used.&lt;/p&gt;
&lt;h4 id=&#34;kvirc&#34;&gt;&lt;a href=&#34;https://www.kvirc.net/&#34;&gt;KVIrc&lt;/a&gt; – client built with Qt&lt;/h4&gt;
&lt;p&gt;Dark theme support was improved, the native spellchecker is now used on Windows and support was added for &lt;code&gt;cap-notify&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;merk&#34;&gt;&lt;a href=&#34;https://github.com/nutjob-laboratories/merk&#34;&gt;MERK&lt;/a&gt; – cross-platform, multiple-document interface client&lt;/h4&gt;
&lt;p&gt;New additions include a search for the log manager, an ability to run a connection script when launching from the command line, lots of improvements to scripting and the script editor, a more featureful text style editor, context menus for windowbar entries, flood protection for long messages, a hotkey manager, a reworked plugin system including export and import of plugins as ZIP files and dragging and dropping of MERK or Python scripts into the application.&lt;/p&gt;
&lt;h4 id=&#34;mirc&#34;&gt;&lt;a href=&#34;https://www.mirc.com/&#34;&gt;mIRC&lt;/a&gt; – 95 ‘til infinity (Windows-only)&lt;/h4&gt;
&lt;p&gt;More options were added for using &lt;code&gt;SASL&lt;/code&gt;, the UI now handles display scaling better and work went into 64-bit support.&lt;/p&gt;
&lt;h4 id=&#34;pidgin&#34;&gt;&lt;a href=&#34;https://pidgin.im/&#34;&gt;Pidgin&lt;/a&gt; - a multi-network/protocol chat application&lt;/h4&gt;
&lt;p&gt;Two experimental releases of Pidgin 3.0 were made (&lt;a href=&#34;https://discourse.imfreedom.org/t/pidgin-3-0-experimental-4-2-93-0-has-been-released/309&#34;&gt;2.93.0&lt;/a&gt;, &lt;a href=&#34;https://discourse.imfreedom.org/t/pidgin-3-0-experimental-5-2-94-0-has-been-released/338&#34;&gt;2.94.0&lt;/a&gt;). Conversations are automatically persisted without needing to explicitly define auto-join for channels, away status can be set via the UI and users can apply the colour schemes system, light or dark.&lt;/p&gt;
&lt;h4 id=&#34;polari&#34;&gt;&lt;a href=&#34;https://wiki.gnome.org/Apps/Polari&#34;&gt;Polari&lt;/a&gt; - GNOME’s client&lt;/h4&gt;
&lt;p&gt;A search for the backlog of all channels was added.&lt;/p&gt;
&lt;h4 id=&#34;rudechat&#34;&gt;&lt;a href=&#34;https://github.com/ShrugShoulders/RudeChat&#34;&gt;RudeChat&lt;/a&gt; - Python client designed to be fast, portable, and fun&lt;/h4&gt;
&lt;p&gt;Lots of GUI code optimisation went in after the move to PyQt.&lt;/p&gt;
&lt;h3 id=&#34;terminal-clients&#34;&gt;Terminal clients&lt;/h3&gt;
&lt;h4 id=&#34;catgirl&#34;&gt;&lt;a href=&#34;https://git.causal.agency/catgirl/about/&#34;&gt;catgirl&lt;/a&gt; - TLS-only client&lt;/h4&gt;
&lt;p&gt;An &lt;code&gt;/motd&lt;/code&gt; command was added for showing the server’s message of the day.&lt;/p&gt;
&lt;h4 id=&#34;clown&#34;&gt;&lt;a href=&#34;https://github.com/F4r3n/clown&#34;&gt;clown&lt;/a&gt; - a client written in Rust&lt;/h4&gt;
&lt;p&gt;This is a new client just getting the basics down, such as support for multiple channels.&lt;/p&gt;
&lt;h4 id=&#34;glirc&#34;&gt;&lt;a href=&#34;https://github.com/glguy/irc-core&#34;&gt;glirc&lt;/a&gt; - Haskell library and console client&lt;/h4&gt;
&lt;p&gt;Notifications can be configured per focus state.&lt;/p&gt;
&lt;h4 id=&#34;kirc&#34;&gt;&lt;a href=&#34;https://kirc.dev/&#34;&gt;kirc&lt;/a&gt; - a tiny client written in POSIX C99&lt;/h4&gt;
&lt;p&gt;Environment variables can be used to set connection defaults.&lt;/p&gt;
&lt;h4 id=&#34;senpai&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~delthas/senpai/&#34;&gt;senpai&lt;/a&gt; - TUI client made for bouncers&lt;/h4&gt;
&lt;p&gt;A &lt;code&gt;/screenshot&lt;/code&gt; command was added for taking and uploading screenshots, support was added for custom keyboard shortcuts, opening &lt;code&gt;irc://&lt;/code&gt; links and &lt;code&gt;STATUSMSG&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;smdt&#34;&gt;&lt;a href=&#34;https://github.com/SweMonkey/smdt&#34;&gt;SMDT&lt;/a&gt; - Sega Megadrive/Genesis terminal emulator, telnet and IRC client&lt;/h4&gt;
&lt;p&gt;The mouse can be used to switch channels and messages can be hidden per type.&lt;/p&gt;
&lt;h4 id=&#34;swirc&#34;&gt;&lt;a href=&#34;https://www.nifty-networks.net/swirc/&#34;&gt;Swirc&lt;/a&gt; - lightweight ICB and IRC client&lt;/h4&gt;
&lt;p&gt;Saving backlogs to disk is now configurable, &lt;code&gt;/nsid&lt;/code&gt; command was added for identifying to NickServ, &lt;code&gt;/utctime&lt;/code&gt; command was added for printing UTC time and tab completion was improved.&lt;/p&gt;
&lt;h4 id=&#34;tiny&#34;&gt;&lt;a href=&#34;https://github.com/osa1/tiny&#34;&gt;tiny&lt;/a&gt; – client written in Rust&lt;/h4&gt;
&lt;p&gt;ZNC compatibility was improved.&lt;/p&gt;
&lt;h4 id=&#34;weechat&#34;&gt;&lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; - the extensible chat client&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;SASL&lt;/code&gt; support was improved and date formatting was made more flexible.&lt;/p&gt;
&lt;h3 id=&#34;bouncers&#34;&gt;Bouncers&lt;/h3&gt;
&lt;p&gt;They stay online, so you don’t have to!&lt;/p&gt;
&lt;h4 id=&#34;quassel-irc&#34;&gt;&lt;a href=&#34;https://quassel-irc.org/&#34;&gt;Quassel IRC&lt;/a&gt; - cross-platform, distributed IRC client with a central core&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;ISUPPORT&lt;/code&gt; handling was improved and support was added for &lt;code&gt;ERR_HELPNOTFOUND&lt;/code&gt; and client-side implicit TLS connections.&lt;/p&gt;
&lt;h4 id=&#34;soju&#34;&gt;&lt;a href=&#34;https://codeberg.org/emersion/soju&#34;&gt;soju&lt;/a&gt; – multi-user bouncer&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;METADATA&lt;/code&gt; for users is now supported, making it possible to block users, Web Push notifications are cancelled, if a client marks a message as read to reduce noise when actively chatting with someone, support was added for &lt;code&gt;labeled-response&lt;/code&gt; to match server replies with client commands more reliably, a directive can be used to add an icon for the bouncer, TLS client certificates can be used for authentication, a &lt;a href=&#34;https://codeberg.org/emersion/soju/src/branch/master/contrib/caddy.md&#34;&gt;configuration example was added for Caddy server&lt;/a&gt; and the &lt;a href=&#34;https://codeberg.org/emersion/soju/src/branch/master/contrib/clients.md&#34;&gt;client configuration docs&lt;/a&gt; got entries for Circe and glirc.&lt;/p&gt;
&lt;h4 id=&#34;znc&#34;&gt;&lt;a href=&#34;https://wiki.znc.in/ZNC&#34;&gt;ZNC&lt;/a&gt; - an advanced bouncer&lt;/h4&gt;
&lt;p&gt;A dark mode was added to the default web theme.&lt;/p&gt;
&lt;h3 id=&#34;daemons&#34;&gt;Daemons&lt;/h3&gt;
&lt;h4 id=&#34;ergo&#34;&gt;&lt;a href=&#34;https://ergo.chat/&#34;&gt;Ergo&lt;/a&gt; - combining the features of an ircd, a services framework, and a bouncer&lt;/h4&gt;
&lt;p&gt;Idle timeouts can now be configured, user metadata is now persistent and the implementations for &lt;code&gt;draft/metadata-2&lt;/code&gt; and &lt;code&gt;draft/message-redaction&lt;/code&gt; were polished.&lt;/p&gt;
&lt;h4 id=&#34;inspircd&#34;&gt;&lt;a href=&#34;https://www.inspircd.org/&#34;&gt;InspIRCd&lt;/a&gt; - stable, high-performance and modular&lt;/h4&gt;
&lt;p&gt;The messageflood module now uses a per-user flood counter and options were added for allowing faster autoconnects on first boot and to ZLine users sending global messages.&lt;/p&gt;
&lt;h4 id=&#34;ircd-hybrid&#34;&gt;&lt;a href=&#34;https://www.ircd-hybrid.org/&#34;&gt;Ircd-hybrid&lt;/a&gt; - a lightweight, high-performance daemon&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;standard-replies&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;juno&#34;&gt;&lt;a href=&#34;https://github.com/cooper/juno&#34;&gt;juno&lt;/a&gt; - an IRCd written in Perl&lt;/h4&gt;
&lt;p&gt;This daemon got its start all the way in 2012, but now it was updated with expanded IRCv3 support, the good stuff like &lt;code&gt;message-ids&lt;/code&gt;, &lt;code&gt;server-time&lt;/code&gt;, &lt;code&gt;labeled-response&lt;/code&gt;, &lt;code&gt;bot-mode&lt;/code&gt;, &lt;code&gt;SETNAME&lt;/code&gt; and &lt;code&gt;utf8only&lt;/code&gt;!&lt;/p&gt;
&lt;h4 id=&#34;ngircd&#34;&gt;&lt;a href=&#34;https://ngircd.barton.de/&#34;&gt;ngIRCd&lt;/a&gt; – lightweight IRC server&lt;/h4&gt;
&lt;p&gt;A new configuration option DefaultChannelModes was added for listing channel modes that become automatically set on new channels on creation and clients erroneously sending passwords for non-password protected servers are now handled properly instead of disconnecting them.&lt;/p&gt;
&lt;h4 id=&#34;provisionircd&#34;&gt;&lt;a href=&#34;https://github.com/provisionircd/ProvisionIRCd&#34;&gt;ProvisionIRCd&lt;/a&gt; - a modern daemon written in Python&lt;/h4&gt;
&lt;p&gt;More API providers were added for geodata.&lt;/p&gt;
&lt;h4 id=&#34;solanum&#34;&gt;&lt;a href=&#34;https://solanum.chat/&#34;&gt;Solanum&lt;/a&gt; - an IRCd for unified networks&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;message-tags&lt;/code&gt;, &lt;code&gt;msgid&lt;/code&gt; and &lt;code&gt;CLIENTTAGDENY&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;unrealircd&#34;&gt;&lt;a href=&#34;https://www.unrealircd.org/&#34;&gt;UnrealIRCd&lt;/a&gt; - the most widely deployed IRCd&lt;/h4&gt;
&lt;p&gt;Channel flood protection is now on by default, post-quantum cryptography features received many enhancements including switching to OpenSSL on Windows allowing PQC on that platform, many performance improvements were made, the log block now supports calling a webhook on selected events, a Systemd unit was added and support was added for &lt;code&gt;UTF8ONLY&lt;/code&gt;, &lt;code&gt;draft/extended-isupport&lt;/code&gt;, network icons and multiple TLS certificates/keys.&lt;/p&gt;
&lt;h3 id=&#34;bots&#34;&gt;Bots&lt;/h3&gt;
&lt;p&gt;This and the next section has been curated with programming language diversity in mind.&lt;/p&gt;
&lt;h4 id=&#34;bot-irc&#34;&gt;&lt;a href=&#34;https://github.com/gryphonshafer/Bot-IRC&#34;&gt;Bot::IRC&lt;/a&gt; (Perl)&lt;/h4&gt;
&lt;p&gt;Issues were fixed in SSL connection and character encoding and the SQLite storage plugin was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;cbot&#34;&gt;&lt;a href=&#34;https://github.com/brenns10/cbot&#34;&gt;cbot&lt;/a&gt; - bot with features implemented as dynamically loaded plugins (C)&lt;/h4&gt;
&lt;p&gt;An improved formatter API was added.&lt;/p&gt;
&lt;h4 id=&#34;chlorobot&#34;&gt;&lt;a href=&#34;https://github.com/Chlorophytus/chlorobot&#34;&gt;chlorobot&lt;/a&gt; – a C++ bot with a Lua command handler&lt;/h4&gt;
&lt;p&gt;The development of this bot started in 2024 and it’s still a bit light on documentation, but could be interesting, if you like using Lua.&lt;/p&gt;
&lt;h4 id=&#34;cloudbot&#34;&gt;&lt;a href=&#34;https://github.com/TotallyNotRobots/CloudBot&#34;&gt;CloudBot&lt;/a&gt; – a simple, fast and expandable bot (Python)&lt;/h4&gt;
&lt;p&gt;Windows and macOS support is now ensured by tests and lots of cleanups were made.&lt;/p&gt;
&lt;h4 id=&#34;ebotula&#34;&gt;&lt;a href=&#34;https://github.com/McWuragu/ebotula&#34;&gt;ebotula&lt;/a&gt; - IRC management bot (C)&lt;/h4&gt;
&lt;p&gt;This bot was created in 2003 and is still being updated. French, Spanish and Italian translations are now available.&lt;/p&gt;
&lt;h4 id=&#34;eggdrop&#34;&gt;&lt;a href=&#34;https://eggheads.org/&#34;&gt;Eggdrop&lt;/a&gt; - the oldest bot still in active development (C/Tcl)&lt;/h4&gt;
&lt;p&gt;A web UI was added.&lt;/p&gt;
&lt;h4 id=&#34;kittybot&#34;&gt;&lt;a href=&#34;https://github.com/ugjka/kittybot&#34;&gt;KittyBot&lt;/a&gt; - IRCv3 enabled bot for Kittens (Go)&lt;/h4&gt;
&lt;p&gt;This is a fork of HellaBot. During this development season, SASL authentication was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;limnoria&#34;&gt;&lt;a href=&#34;https://limnoria.net/&#34;&gt;Limnoria&lt;/a&gt; - robust, full-featured, and user/programmer-friendly bot (Python)&lt;/h4&gt;
&lt;p&gt;The plugin template now uses &lt;code&gt;pyproject.toml&lt;/code&gt; and the SedRegex got support for custom delimiters.&lt;/p&gt;
&lt;h4 id=&#34;mewtwo&#34;&gt;&lt;a href=&#34;https://github.com/meew0/Mewtwo&#34;&gt;Mewtwo&lt;/a&gt; – a bot using Java and JRuby&lt;/h4&gt;
&lt;p&gt;This is an older bot that was updated to the latest toolchain and made more stable in the past couple of years.&lt;/p&gt;
&lt;h4 id=&#34;orcabot&#34;&gt;&lt;a href=&#34;https://codeberg.org/dlowe/orcabot&#34;&gt;Orcabot&lt;/a&gt; – a modular bot (Common Lisp)&lt;/h4&gt;
&lt;p&gt;Fractional numbers are now supported in the &lt;code&gt;.calc&lt;/code&gt; command.&lt;/p&gt;
&lt;h4 id=&#34;pbot&#34;&gt;&lt;a href=&#34;https://github.com/pragma-/pbot&#34;&gt;PBot&lt;/a&gt; – a pragmatic bot (Perl)&lt;/h4&gt;
&lt;p&gt;The Wordle plugin and the translation and virtual machine applets received many improvements.&lt;/p&gt;
&lt;h4 id=&#34;phreakbot&#34;&gt;&lt;a href=&#34;https://github.com/jskoetsier/phreakbot&#34;&gt;PhreakBot&lt;/a&gt; – a modular bot (Python)&lt;/h4&gt;
&lt;p&gt;This is a new bot built using &lt;a href=&#34;https://codeberg.org/shiz/pydle&#34;&gt;pydle&lt;/a&gt;. Its features include the ability to easily add your own modules, a permission system, a quote database and a karma system. The database used is PostgreSQL.&lt;/p&gt;
&lt;h4 id=&#34;scala-irc-bot&#34;&gt;&lt;a href=&#34;https://github.com/CO2-Codes/Scala-IRC-bot&#34;&gt;Scala-IRC-bot&lt;/a&gt; -  PircBotX based bot (Scala)&lt;/h4&gt;
&lt;p&gt;linkReplaceListener was added for finding archived versions of links from the Wayback Machine of Internet Archive.&lt;/p&gt;
&lt;h4 id=&#34;sopel&#34;&gt;&lt;a href=&#34;https://sopel.chat/&#34;&gt;Sopel&lt;/a&gt; - lightweight, easy-to-use utility bot (Python)&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;setname&lt;/code&gt; and &lt;code&gt;invite-notify&lt;/code&gt; and a &lt;code&gt;sopel-config edit&lt;/code&gt; subcommand was added for opening a specified configuration file in the user’s default editor.&lt;/p&gt;
&lt;h3 id=&#34;libraries-frameworks-and-utilities&#34;&gt;Libraries, frameworks and utilities&lt;/h3&gt;
&lt;h4 id=&#34;ibis&#34;&gt;&lt;a href=&#34;https://docs.imfreedom.org/ibis/&#34;&gt;Ibis&lt;/a&gt; - a &lt;a href=&#34;https://docs.gtk.org/gobject/&#34;&gt;GObject&lt;/a&gt; based library (C)&lt;/h4&gt;
&lt;p&gt;Nickname properties are now easier to deal with.&lt;/p&gt;
&lt;h4 id=&#34;lirc&#34;&gt;&lt;a href=&#34;https://github.com/InterLinked1/lirc&#34;&gt;lirc&lt;/a&gt; - a lightweight client library (C)&lt;/h4&gt;
&lt;p&gt;This new library saw work on fundamental things such as support for client pings.&lt;/p&gt;
&lt;h4 id=&#34;redis-irc-bot&#34;&gt;&lt;a href=&#34;https://codeberg.org/dgl/redis-irc-bot&#34;&gt;redis-irc-bot&lt;/a&gt; - minimal IRC bot framework (Bash)&lt;/h4&gt;
&lt;p&gt;Support was added for password authentication.&lt;/p&gt;
&lt;h4 id=&#34;superseriousstats&#34;&gt;&lt;a href=&#34;https://sss.dutnie.nl/&#34;&gt;superseriousstats&lt;/a&gt; - a fast and efficient program to create statistics out of various types of IRC chat logs (PHP)&lt;/h4&gt;
&lt;p&gt;The documentation was made clearer and configuration is now a bit easier.&lt;/p&gt;
&lt;h3 id=&#34;bridges&#34;&gt;Bridges&lt;/h3&gt;
&lt;h4 id=&#34;biboumi&#34;&gt;&lt;a href=&#34;https://codeberg.org/poezio/biboumi&#34;&gt;Biboumi&lt;/a&gt; - XMPP to IRC gateway&lt;/h4&gt;
&lt;p&gt;All allowed IRC channel prefixes are now supported, corrected XMPP messages are no longer forwarded to IRC to avoid noise, support was added for &lt;code&gt;message-tags&lt;/code&gt; and &lt;code&gt;draft/multiline&lt;/code&gt; was implemented.&lt;/p&gt;
&lt;h4 id=&#34;dis4irc&#34;&gt;&lt;a href=&#34;https://github.com/zachbr/Dis4IRC&#34;&gt;Dis4IRC&lt;/a&gt; - a modern Discord &amp;lt;-&amp;gt; IRC bridge&lt;/h4&gt;
&lt;p&gt;An option was added for suppressing previews for URLs bridged to Discord and the pinned messages command was improved.&lt;/p&gt;
&lt;h4 id=&#34;irslackd&#34;&gt;&lt;a href=&#34;https://github.com/adsr/irslackd&#34;&gt;irslackd&lt;/a&gt; - self-hosted IRC gateway to Slack&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;LINELEN&lt;/code&gt; (maximum message length in bytes in IRC).&lt;/p&gt;
&lt;h4 id=&#34;localslackirc&#34;&gt;&lt;a href=&#34;https://codeberg.org/ltworf/localslackirc&#34;&gt;localslackirc&lt;/a&gt; - gateway for Slack, running on localhost for one user&lt;/h4&gt;
&lt;p&gt;The away status of users is tracked and bots are now marked.&lt;/p&gt;
&lt;h4 id=&#34;matrix2051&#34;&gt;&lt;a href=&#34;https://github.com/progval/matrix2051&#34;&gt;Matrix2051&lt;/a&gt; - IRC server backed by Matrix&lt;/h4&gt;
&lt;p&gt;Support was added for custom homeserver URLs, which helps when using proxies like &lt;a href=&#34;https://github.com/matrix-org/pantalaimon&#34;&gt;Pantalaimon&lt;/a&gt; or servers with broken automatic discovery.&lt;/p&gt;
&lt;h4 id=&#34;reliable-discord&#34;&gt;&lt;a href=&#34;https://codeberg.org/mk-fg/reliable-discord-client-irc-daemon&#34;&gt;Reliable Discord-client IRC Daemon (rdircd)&lt;/a&gt; - personal discord-client to irc-server translation daemon&lt;/h4&gt;
&lt;p&gt;Context menu command interactions are handled better, connection errors from typing notifications and status updates are now less verbose, bot replies, voice channel start time, onboarding and ”action required” events are now handled and configuration can be set to read-only, so changes don’t persist between restarts.&lt;/p&gt;
&lt;h4 id=&#34;teleirc&#34;&gt;&lt;a href=&#34;https://github.com/RITlug/teleirc&#34;&gt;teleirc&lt;/a&gt; – bridge to Telegram&lt;/h4&gt;
&lt;p&gt;Documentation was improved.&lt;/p&gt;
&lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt;
&lt;p&gt;Taking care of user accounts and channels among other things.&lt;/p&gt;
&lt;h4 id=&#34;anope&#34;&gt;&lt;a href=&#34;https://www.anope.org/&#34;&gt;Anope&lt;/a&gt; – highly modular set of services&lt;/h4&gt;
&lt;p&gt;Additions include a nickserv/resend oper privilege, the ability for opers to resend passwords for users in nickserv/resend, support for flexible and monospace layouts, support for self-service validation of vhosts using DNS TXT records, support for SRV and TXT records in the dns module, a &lt;code&gt;--nodb&lt;/code&gt; option to disable database and encryption module checks, support for associating a timezone with an account alongside language-specific time formats, support for IRCv3 message tags when using Solanum, tagging channel entry messages with an IRCv3 time tag (on by default), support for forbidding passwords alongside loading forbids from a file, support for the UnrealIRCd &lt;code&gt;+F&lt;/code&gt; flood profile mode, an &lt;code&gt;anope-mkpasswd&lt;/code&gt; script to help generate passwords for use in the config, a &lt;code&gt;DISPLAY&lt;/code&gt; flag for &lt;code&gt;nickserv/list&lt;/code&gt; to only show account display nicknames, an hs_offer module for offering templated vhosts to users, expanded password obscurity checks and an event hook to allow modules to reject passwords and improved BotServ fantasy commands.&lt;/p&gt;
&lt;h4 id=&#34;atheme&#34;&gt;&lt;a href=&#34;https://atheme.github.io/&#34;&gt;Atheme&lt;/a&gt; - for large networks with high scalability requirements&lt;/h4&gt;
&lt;p&gt;Passwords that cannot be encrypted are now rejected.&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
    <item>
      <title>IRC technology news from the first half of 2025</title>
      <link>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_first_half_of_2025/</link>
      <pubDate>Wed, 16 Jul 2025 13:00:06 +0300</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_first_half_of_2025/</guid>
      <description>&lt;p&gt;The pace of IRC hacking remained intense during the past development season, with desktop clients standing out in particular. One noteworthy new project is &lt;a href=&#34;#eirc&#34;&gt;eIRC&lt;/a&gt; by Jesse Greathouse. It is proposed as an alternative to resource-hungry enterprise messaging systems.&lt;/p&gt;
&lt;h3 id=&#34;protocol-specifications&#34;&gt;Protocol specifications&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/IRCv3.svg&#34;
    alt=&#34;IRCv3 logo&#34; width=&#34;80&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;A work-in-progress spec was added for &lt;code&gt;extended-isupport&lt;/code&gt;, which allows servers to send information to the client before connection registration.&lt;/p&gt;
&lt;h3 id=&#34;documentation&#34;&gt;Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://modern.ircdocs.horse/&#34;&gt;Modern IRC Client Protocol&lt;/a&gt; docs received updates and clarifications related to &lt;code&gt;RPL_CREATIONTIME&lt;/code&gt; and &lt;code&gt;RPL_LINKS&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;mobile-clients&#34;&gt;Mobile clients&lt;/h3&gt;
&lt;h4 id=&#34;goguma&#34;&gt;&lt;a href=&#34;https://codeberg.org/emersion/goguma&#34;&gt;goguma&lt;/a&gt; - for mobile Linux, iOS and Android&lt;/h4&gt;
&lt;p&gt;Support was added for message reactions and deleting messages, a date indicator was added to help keep track of things while scrolling, notification handling was made more robust and initial support was added for &lt;code&gt;ISUPPORT&lt;/code&gt; command and the work-in-progress metadata spec, making use of it to synchronise muted and pinned buffers when using the soju bouncer.&lt;/p&gt;
&lt;h4 id=&#34;irccloud&#34;&gt;&lt;a href=&#34;https://www.irccloud.com/&#34;&gt;IRCCloud&lt;/a&gt; - connect to any IRC server out there, and even Slack workspaces&lt;/h4&gt;
&lt;p&gt;The Android and iOS apps received improvements to the parsing of &lt;code&gt;CLIENTTAGDENY&lt;/code&gt; from &lt;code&gt;ISUPPORT&lt;/code&gt; to enable Reply / Edit on more servers, a button was added for requesting a password reset from the login screen and support was added for displaying deleted messages. The Android version additionally got improvements in word wrapping and whitespace rendering.&lt;/p&gt;
&lt;h4 id=&#34;weechat-android&#34;&gt;&lt;a href=&#34;https://github.com/ubergeek42/weechat-android&#34;&gt;Weechat-Android&lt;/a&gt; -  WeeChat relay client for Android&lt;/h4&gt;
&lt;p&gt;An option was added to not move hot buffers to the top of the buffer list.&lt;/p&gt;
&lt;h4 id=&#34;weechatrn&#34;&gt;&lt;a href=&#34;https://github.com/mhoran/weechatRN&#34;&gt;WeechatRN&lt;/a&gt; -  WeeChat relay client for mobile using WebSockets&lt;/h4&gt;
&lt;p&gt;Keyboard handling was improved.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/goguma_reaction.png&#34;
    alt=&#34;Reacting to a message in Goguma&#34; width=&#34;540&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Reacting to a message in Goguma&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&#34;web-clients&#34;&gt;Web clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/obsidianirc.png&#34;
    alt=&#34;ObsidianIRC screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;ObsidianIRC screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;gamja&#34;&gt;&lt;a href=&#34;https://codeberg.org/emersion/gamja&#34;&gt;gamja&lt;/a&gt; – a bare-bones web client&lt;/h4&gt;
&lt;p&gt;Support was added for deleted (redacted) messages and accessibility was improved.&lt;/p&gt;
&lt;h4 id=&#34;kiwiirc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwiirc&#34;&gt;KiwiIRC&lt;/a&gt; – uses static files and supports theming and plugins (JavaScript)&lt;/h4&gt;
&lt;p&gt;Cloudflare Turnstile is now supported as an alternative to CAPTCHAs, the startup screen was made more customisable, plugins can now add buttons to the message info component and the UI was made more mobile-friendly.&lt;/p&gt;
&lt;h4 id=&#34;obsidianirc&#34;&gt;&lt;a href=&#34;https://github.com/ObsidianIRC/ObsidianIRC&#34;&gt;ObsidianIRC&lt;/a&gt; – next generation client (TypeScript)&lt;/h4&gt;
&lt;p&gt;This client is very new and is built using React, TypeScript and TailwindCSS. Despite the newness, it already supports features like &lt;code&gt;SASL&lt;/code&gt; authentication, typing notifications and replies.&lt;/p&gt;
&lt;h4 id=&#34;web-irc&#34;&gt;&lt;a href=&#34;https://github.com/SwiftIRC/Web-IRC&#34;&gt;Web-IRC&lt;/a&gt; – a feature-rich WebSocket client (JavaScript)&lt;/h4&gt;
&lt;p&gt;The initial release of this WebSocket-reliant client was in 2022 and now after a pause of a couple of years, development resumed again with additions such as &lt;code&gt;SASL&lt;/code&gt; authentication support.&lt;/p&gt;
&lt;h3 id=&#34;desktop-clients&#34;&gt;Desktop clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/merk.png&#34;
    alt=&#34;MERK screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;MERK screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;comlink&#34;&gt;&lt;a href=&#34;https://github.com/rockorager/comlink&#34;&gt;comlink&lt;/a&gt; -  an experimental client &lt;/h4&gt;
&lt;p&gt;Many fundamental features were added to this new client. IRCv3 implementations include typing notifications.&lt;/p&gt;
&lt;h4 id=&#34;erc&#34;&gt;&lt;a href=&#34;https://www.gnu.org/savannah-checkouts/gnu/emacs/erc.html&#34;&gt;ERC&lt;/a&gt; - an Emacs IRC client&lt;/h4&gt;
&lt;p&gt;The spelling module now makes better use of Flyspell&amp;rsquo;s API and library access for ban lists was made reliable.&lt;/p&gt;
&lt;h4 id=&#34;grumpychat&#34;&gt;&lt;a href=&#34;https://github.com/grumpy-irc/grumpy&#34;&gt;GrumpyChat&lt;/a&gt; - modern, yet oldschool client with distributed core, written in C++&lt;/h4&gt;
&lt;p&gt;After a 3-year hiatus, work started on adding Qt6 support.&lt;/p&gt;
&lt;h4 id=&#34;halloy&#34;&gt;&lt;a href=&#34;https://halloy.chat/&#34;&gt;Halloy&lt;/a&gt; – cross-platform client written in Rust&lt;/h4&gt;
&lt;p&gt;URL links now get image and card previews, autocomplete can be customised, a full screen mode was added, notification behaviour can be tweaked, support was added for &lt;code&gt;setname&lt;/code&gt; and Standard Replies, case mapping is now supported via &lt;code&gt;ISUPPORT&lt;/code&gt;, Tor can be used as a proxy, using emojis was made more convenient, highlighting can be configured based on regular expressions and words, discovering and sharing themes was made easier, a modal prompt can optionally be displayed before opening a URL, easy ways to mark a buffer or an entire server as read were added and a &lt;code&gt;/hop&lt;/code&gt; command for parting the current channel and joining a new one was added alongside lots of configuration options to control the look and feel.&lt;/p&gt;
&lt;h4 id=&#34;irken&#34;&gt;&lt;a href=&#34;https://github.com/dlowe-net/irken&#34;&gt;Irken&lt;/a&gt; – a small, modular client written in Tcl/Tk&lt;/h4&gt;
&lt;p&gt;Handling of character encodings was made more robust and an issue with sending multi-line messages was fixed.&lt;/p&gt;
&lt;h4 id=&#34;kvirc&#34;&gt;&lt;a href=&#34;https://www.kvirc.net/&#34;&gt;KVIrc&lt;/a&gt; – client built with Qt&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;SASL EXTERNAL&lt;/code&gt; now supports sending an authorisation ID to help with ZNC bouncer connections and the KDE tray icon works once more for window activation.&lt;/p&gt;
&lt;h4 id=&#34;merk&#34;&gt;&lt;a href=&#34;https://github.com/nutjob-laboratories/merk&#34;&gt;MERK&lt;/a&gt; – cross-platform, multiple-document interface client&lt;/h4&gt;
&lt;p&gt;This is a new client from the creator of Ərk. Work started already in 2021, but only resumed during H1 2025. The client uses &lt;a href=&#34;https://en.wikipedia.org/wiki/Multiple-document_interface&#34;&gt;multiple-document interface style&lt;/a&gt; and has over 180 different settings to tweak. The project is currently looking for help in graphic design and figuring out an easy Linux packaging process. There is also a &lt;a href=&#34;https://gofund.me/ae062139&#34;&gt;fundraiser on GoFundMe&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;mirc&#34;&gt;&lt;a href=&#34;https://www.mirc.com/&#34;&gt;mIRC&lt;/a&gt; – 95 ‘til infinity (Windows-only)&lt;/h4&gt;
&lt;p&gt;Dark mode is now supported on Windows, WebP images can be loaded and an option was added to shade alternate lines.&lt;/p&gt;
&lt;h4 id=&#34;pidgin&#34;&gt;&lt;a href=&#34;https://pidgin.im/&#34;&gt;Pidgin&lt;/a&gt; - a multi-network/protocol chat application&lt;/h4&gt;
&lt;p&gt;Two experimental releases of Pidgin 3.0 were made (&lt;a href=&#34;https://discourse.imfreedom.org/t/pidgin-3-0-experimental-2-2-91-0-has-been-released/262&#34;&gt;2.91.0&lt;/a&gt;, &lt;a href=&#34;https://discourse.imfreedom.org/t/pidgin-3-0-0-experimental-3-2-92-1-has-been-released/296&#34;&gt;2.92.1&lt;/a&gt;) with fundamental work going into features like message notifications and preference dialogs. On the protocol side, additions include IRC formatting and support for &lt;code&gt;away-notify&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;polari&#34;&gt;&lt;a href=&#34;https://wiki.gnome.org/Apps/Polari&#34;&gt;Polari&lt;/a&gt; - GNOME’s client&lt;/h4&gt;
&lt;p&gt;Work went into UI modernisation.&lt;/p&gt;
&lt;h4 id=&#34;rudechat&#34;&gt;&lt;a href=&#34;https://github.com/ShrugShoulders/RudeChat&#34;&gt;RudeChat&lt;/a&gt; - Python client designed to be fast, portable, and fun&lt;/h4&gt;
&lt;p&gt;The UI was ported from Tkinter to PyQt for better performance and macOS builds are now available.&lt;/p&gt;
&lt;h3 id=&#34;terminal-clients&#34;&gt;Terminal clients&lt;/h3&gt;
&lt;h4 id=&#34;irssi&#34;&gt;&lt;a href=&#34;https://irssi.org/&#34;&gt;Irssi&lt;/a&gt; - your text mode chatting application since 1999&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;SASL&lt;/code&gt; authentication negotiation was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;senpai&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~delthas/senpai/&#34;&gt;senpai&lt;/a&gt; - TUI client made for bouncers&lt;/h4&gt;
&lt;p&gt;Support was added for RGB colors in Windows Terminal and pinning and muting user buffers per the &lt;code&gt;METADATA&lt;/code&gt; spec.&lt;/p&gt;
&lt;h4 id=&#34;smdt&#34;&gt;&lt;a href=&#34;https://github.com/SweMonkey/smdt&#34;&gt;SMDT&lt;/a&gt; - Sega Megadrive/Genesis terminal emulator, telnet and IRC client&lt;/h4&gt;
&lt;p&gt;Fixes were made to word wrapping and multi-line messages now look nicer.&lt;/p&gt;
&lt;h4 id=&#34;swirc&#34;&gt;&lt;a href=&#34;https://www.nifty-networks.net/swirc/&#34;&gt;Swirc&lt;/a&gt; - lightweight ICB and IRC client&lt;/h4&gt;
&lt;p&gt;Tab completion was expanded to more commands and the interplay with ZNC was improved.&lt;/p&gt;
&lt;h4 id=&#34;tiny&#34;&gt;&lt;a href=&#34;https://github.com/osa1/tiny&#34;&gt;tiny&lt;/a&gt; – client written in Rust&lt;/h4&gt;
&lt;p&gt;Some key handling improvements were made and support was added for mouse wheel events, mapping to message scrolling by default.&lt;/p&gt;
&lt;h4 id=&#34;weechat&#34;&gt;&lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; - the extensible chat client&lt;/h4&gt;
&lt;p&gt;A &lt;code&gt;/pipe&lt;/code&gt; command was added for redirecting command output alongside many other additions and fixes.&lt;/p&gt;
&lt;h3 id=&#34;bouncers&#34;&gt;Bouncers&lt;/h3&gt;
&lt;p&gt;They stay online, so you don’t have to!&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/eirc.png&#34;
    alt=&#34;Screenshot of eIRC’s web client&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Screenshot of eIRC’s web client&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;eirc&#34;&gt;&lt;a href=&#34;https://github.com/jesse-greathouse/eIRC&#34;&gt;eIRC&lt;/a&gt; – an enterprise chat system based on IRC&lt;/h4&gt;
&lt;p&gt;As the tagline says, this new thing is really a system of applications, so could be included in most of the categories here. While it includes a JavaScript frontend, it works with any application supporting WebSockets. It ships an IRC protocol proxy written in modern C++ and a WebSocket server built inside Nginx workers. InspIRCd is used for the IRC server itself. A Laravel (PHP) application and a database handle persistent user management, chatroom metadata and authentication with OAuth2. An optional Redis-backed history bridge can be used.&lt;/p&gt;
&lt;h4 id=&#34;soju&#34;&gt;&lt;a href=&#34;https://codeberg.org/emersion/soju&#34;&gt;soju&lt;/a&gt; – multi-user bouncer&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;draft/message-redaction&lt;/code&gt;, improvements were made to the documentation (guides, man pages and command line help) and messages are now stored in a database by default.&lt;/p&gt;
&lt;h4 id=&#34;znc&#34;&gt;&lt;a href=&#34;https://wiki.znc.in/ZNC&#34;&gt;ZNC&lt;/a&gt; - an advanced bouncer&lt;/h4&gt;
&lt;p&gt;Support for &lt;code&gt;SASL&lt;/code&gt; v3.1 and v3.2, &lt;code&gt;message-tags&lt;/code&gt; and &lt;code&gt;invite-notify&lt;/code&gt; was implemented, unix sockets can now be used for listeners, connections and modules and performance was improved.&lt;/p&gt;
&lt;h3 id=&#34;daemons&#34;&gt;Daemons&lt;/h3&gt;
&lt;h4 id=&#34;ergo&#34;&gt;&lt;a href=&#34;https://ergo.chat/&#34;&gt;Ergo&lt;/a&gt; - combining the features of an ircd, a services framework, and a bouncer&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;draft/webpush&lt;/code&gt; spec, allowing to make use of web push notifications, the &lt;code&gt;draft/metadata-2&lt;/code&gt; spec was implemented, an HTTP API was added, the configuration now allows to publish arbitrary &lt;code&gt;ISUPPORT&lt;/code&gt; tokens, aliases for server commands can be defined and HTTP DoS attack mitigation was added.&lt;/p&gt;
&lt;h4 id=&#34;eris&#34;&gt;&lt;a href=&#34;https://git.mills.io/prologic/eris&#34;&gt;eris&lt;/a&gt; - modern IRC Server / Daemon written in Go that has a heavy focus on security and privacy&lt;/h4&gt;
&lt;p&gt;The codebase received a cleanup after a 3-year hiatus and support was added for full Let&amp;rsquo;s Encrypt (ACME) TLS certificates via DNS-01 challenge supporting Cloudflare and GCore.&lt;/p&gt;
&lt;h4 id=&#34;inspircd&#34;&gt;&lt;a href=&#34;https://www.inspircd.org/&#34;&gt;InspIRCd&lt;/a&gt; - stable, high-performance and modular&lt;/h4&gt;
&lt;p&gt;Support was added for help channels that grant privileges to helpers upon joining, the performance of message formatting was improved, an OpenRC init script was added and flag support was added to rline (regular expressions to block user connections).&lt;/p&gt;
&lt;h4 id=&#34;ircd-hybrid&#34;&gt;&lt;a href=&#34;https://www.ircd-hybrid.org/&#34;&gt;Ircd-hybrid&lt;/a&gt; - a lightweight, high-performance daemon&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;channel::max_kick_length&lt;/code&gt; and &lt;code&gt;general::max_away_length&lt;/code&gt; configuration directives were added to allow to specify the maximum length of &lt;code&gt;KICK&lt;/code&gt; and &lt;code&gt;AWAY&lt;/code&gt; messages that the server will accept from a client, DNS lookups can now be disabled with the &lt;code&gt;general::disable_dns&lt;/code&gt; directive and &lt;code&gt;general::ident_timeout&lt;/code&gt; now controls the wait time for Ident replies.&lt;/p&gt;
&lt;h4 id=&#34;provisionircd&#34;&gt;&lt;a href=&#34;https://github.com/provisionircd/ProvisionIRCd&#34;&gt;ProvisionIRCd&lt;/a&gt; - a modern daemon written in Python&lt;/h4&gt;
&lt;p&gt;The codebase received heavy restructuring and refactoring and support was added for &lt;code&gt;draft/no-implicit-names&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;sable&#34;&gt;&lt;a href=&#34;https://github.com/Libera-Chat/sable&#34;&gt;Sable&lt;/a&gt; – an experimental chat server&lt;/h4&gt;
&lt;p&gt;Work continued on chat history.&lt;/p&gt;
&lt;h4 id=&#34;solanum&#34;&gt;&lt;a href=&#34;https://solanum.chat/&#34;&gt;Solanum&lt;/a&gt; - an IRCd for unified networks&lt;/h4&gt;
&lt;p&gt;Applying oper privileges was made more robust and the documentation was improved.&lt;/p&gt;
&lt;h4 id=&#34;unrealircd&#34;&gt;&lt;a href=&#34;https://www.unrealircd.org/&#34;&gt;UnrealIRCd&lt;/a&gt; - the most widely deployed IRCd&lt;/h4&gt;
&lt;p&gt;The spamfilter was made more flexible, the antimixedutf8 spam fighting module was made more robust and a &lt;code&gt;SPAMINFO&lt;/code&gt; command was added to give diagnostic information about a line of spam text.&lt;/p&gt;
&lt;h3 id=&#34;bots&#34;&gt;Bots&lt;/h3&gt;
&lt;p&gt;This and the next section has been curated with programming language diversity in mind.&lt;/p&gt;
&lt;h4 id=&#34;botto&#34;&gt;&lt;a href=&#34;https://github.com/strong-code/botto&#34;&gt;Botto&lt;/a&gt; (Node.js)&lt;/h4&gt;
&lt;p&gt;Quote and stats commands were added, a Bluesky link parser was added and admin commands were added for suppressing commands and observers per channel and for checking which channels the bot is banned from.&lt;/p&gt;
&lt;h4 id=&#34;cardinal&#34;&gt;&lt;a href=&#34;https://github.com/JohnMaguire/Cardinal&#34;&gt;Cardinal&lt;/a&gt; – bot built with Twisted library with a focus on ease of development (Python)&lt;/h4&gt;
&lt;p&gt;Youtube shorts link parsing was added.&lt;/p&gt;
&lt;h4 id=&#34;eggdrop&#34;&gt;&lt;a href=&#34;https://eggheads.org/&#34;&gt;Eggdrop&lt;/a&gt; - the oldest bot still in active development (C/Tcl)&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;SCRAM&lt;/code&gt; authentication method for SASL was added, a notice is now displayed about expired TLS certificates at startup and owner login, a &lt;code&gt;CHANSET&lt;/code&gt; bind was added to allow users to trigger Tcl procs when a channel setting is modified, a Python script tutorial was added and Python support was polished.&lt;/p&gt;
&lt;h4 id=&#34;irccd&#34;&gt;&lt;a href=&#34;http://projects.malikania.fr/irccd/&#34;&gt;irccd&lt;/a&gt; - allows both C and JavaScript plugins (C)&lt;/h4&gt;
&lt;p&gt;An asynchronous &lt;code&gt;Irccd.Http&lt;/code&gt; API was added and the auto-reconnect feature is now automatically enabled.&lt;/p&gt;
&lt;h4 id=&#34;kameloso&#34;&gt;&lt;a href=&#34;https://github.com/zorael/kameloso&#34;&gt;kameloso&lt;/a&gt; - IRC and Twitch bot (D)&lt;/h4&gt;
&lt;p&gt;The persistence service was improved and made configurable and Counter messages can now be sent as emotes.&lt;/p&gt;
&lt;h4 id=&#34;limnoria&#34;&gt;&lt;a href=&#34;https://limnoria.net/&#34;&gt;Limnoria&lt;/a&gt; - robust, full-featured, and user/programmer-friendly bot (Python)&lt;/h4&gt;
&lt;p&gt;The URL whitelist plugin is now channel-specific and many plugins received cleanups related to Python version checks.&lt;/p&gt;
&lt;h4 id=&#34;pircbotx&#34;&gt;&lt;a href=&#34;https://github.com/pircbotx/pircbotx&#34;&gt;PircBotX&lt;/a&gt; – library with IRCv3 CAP negotiation support (Java)&lt;/h4&gt;
&lt;p&gt;DNS resolution now works through proxies as well.&lt;/p&gt;
&lt;h4 id=&#34;scala-irc-bot&#34;&gt;&lt;a href=&#34;https://github.com/CO2-Codes/Scala-IRC-bot&#34;&gt;Scala-IRC-bot&lt;/a&gt; -  PircBotX based bot (Scala)&lt;/h4&gt;
&lt;p&gt;An option was added to only join channels after NickServ confirms a successful login.&lt;/p&gt;
&lt;h4 id=&#34;skybot&#34;&gt;&lt;a href=&#34;https://github.com/rmmh/skybot&#34;&gt;Skybot&lt;/a&gt; - multithreaded and multinetwork bot (Python)&lt;/h4&gt;
&lt;p&gt;A Mastodon link parser was added.&lt;/p&gt;
&lt;h4 id=&#34;sopel&#34;&gt;&lt;a href=&#34;https://sopel.chat/&#34;&gt;Sopel&lt;/a&gt; - lightweight, easy-to-use utility bot (Python)&lt;/h4&gt;
&lt;p&gt;The safety plugin that alerts about malicious URLs was made more robust and the &lt;a href=&#34;https://github.com/sopel-irc/sopel-tld&#34;&gt;tld&lt;/a&gt; and &lt;a href=&#34;https://github.com/sopel-irc/sopel-unicode&#34;&gt;unicode&lt;/a&gt; plugins were extracted into separate packages.&lt;/p&gt;
&lt;h3 id=&#34;libraries-frameworks-and-utilities&#34;&gt;Libraries, frameworks and utilities&lt;/h3&gt;
&lt;h4 id=&#34;convoyeur&#34;&gt;&lt;a href=&#34;https://github.com/classabbyamp/convoyeur&#34;&gt;Convoyeur&lt;/a&gt; - IRCv3 FILEHOST extension adapter to external file upload services (Rust)&lt;/h4&gt;
&lt;p&gt;The initial 0.1.0 release of this new utility was made in June. Convoyeur sits behind the bouncer or server that implements FILEHOST and proxies upload requests to other places.&lt;/p&gt;
&lt;h4 id=&#34;dialect&#34;&gt;&lt;a href=&#34;https://github.com/zorael/dialect&#34;&gt;Dialect&lt;/a&gt; - IRC parsing library (D)&lt;/h4&gt;
&lt;p&gt;A simple example bot client was added and &lt;code&gt;RPL_WHOISACTUALLY&lt;/code&gt; parsing now works with IPv6 addresses.&lt;/p&gt;
&lt;h4 id=&#34;go-ircevo&#34;&gt;&lt;a href=&#34;https://github.com/kofany/go-ircevo&#34;&gt;go-ircevo&lt;/a&gt; - an enhanced framework for interacting with servers (Go)&lt;/h4&gt;
&lt;p&gt;New methods were added for nickname management.&lt;/p&gt;
&lt;h4 id=&#34;ibis&#34;&gt;&lt;a href=&#34;https://docs.imfreedom.org/ibis/&#34;&gt;Ibis&lt;/a&gt; - a &lt;a href=&#34;https://docs.gtk.org/gobject/&#34;&gt;GObject&lt;/a&gt; based library (C)&lt;/h4&gt;
&lt;p&gt;Support was added for handling modes and batches, &lt;a href=&#34;https://modern.ircdocs.horse/formatting&#34;&gt;IRC Formatting&lt;/a&gt; is now parsed into a format that UIs can use and client side pings were implemented.&lt;/p&gt;
&lt;h4 id=&#34;irckit&#34;&gt;&lt;a href=&#34;https://github.com/FuelRats/IRCKit&#34;&gt;IRCKit&lt;/a&gt; - an asynchronous pure Swift library using the Apple NIO framework&lt;/h4&gt;
&lt;p&gt;It is now possible to send non-standard commands.&lt;/p&gt;
&lt;h4 id=&#34;needletailirc&#34;&gt;&lt;a href=&#34;https://github.com/needletails/needletail-irc&#34;&gt;NeedleTailIRC&lt;/a&gt; - a Swift SDK for implementing IRC protocol functionality with modern concurrency features&lt;/h4&gt;
&lt;p&gt;Launched in 2024, this Swift package is now production-ready and can be used to build clients, servers and bots.&lt;/p&gt;
&lt;h4 id=&#34;zircon&#34;&gt;&lt;a href=&#34;https://github.com/vascocosta/zircon&#34;&gt;zircon&lt;/a&gt; - a simple library written in Zig&lt;/h4&gt;
&lt;p&gt;The initial release was made in March and by now the library supports basic commands, but not IRCv3 features. It is aimed for creating clients or bots.&lt;/p&gt;
&lt;h3 id=&#34;bridges&#34;&gt;Bridges&lt;/h3&gt;
&lt;h4 id=&#34;dis4irc&#34;&gt;&lt;a href=&#34;https://github.com/zachbr/Dis4IRC&#34;&gt;Dis4IRC&lt;/a&gt; - a modern Discord &amp;lt;-&amp;gt; IRC bridge&lt;/h4&gt;
&lt;p&gt;Discord Message Forwards now work.&lt;/p&gt;
&lt;h4 id=&#34;discord-ircv3&#34;&gt;&lt;a href=&#34;https://github.com/delthas/discord-ircv3&#34;&gt;discord-ircv3&lt;/a&gt; – bridge with support for IRCv3 features&lt;/h4&gt;
&lt;p&gt;Reacts are now transmitted from IRC to Discord.&lt;/p&gt;
&lt;h4 id=&#34;heisenbridge&#34;&gt;&lt;a href=&#34;https://github.com/hifi/heisenbridge&#34;&gt;Heisenbridge&lt;/a&gt; - a bouncer-style Matrix IRC bridge&lt;/h4&gt;
&lt;p&gt;Support was added for media captions.&lt;/p&gt;
&lt;h4 id=&#34;localslackirc&#34;&gt;&lt;a href=&#34;https://codeberg.org/ltworf/localslackirc&#34;&gt;localslackirc&lt;/a&gt; - gateway for Slack, running on localhost for one user&lt;/h4&gt;
&lt;p&gt;Nicknames are now marked as offline, if they are away on Slack.&lt;/p&gt;
&lt;h4 id=&#34;matrix2051&#34;&gt;&lt;a href=&#34;https://github.com/progval/matrix2051&#34;&gt;Matrix2051&lt;/a&gt; - IRC server backed by Matrix&lt;/h4&gt;
&lt;p&gt;Parsing of IRC message tags was made more robust, compatibility with Irssi regarding capability messages was improved and a matrix.org login issue was fixed.&lt;/p&gt;
&lt;h4 id=&#34;reliable-discord&#34;&gt;&lt;a href=&#34;https://codeberg.org/mk-fg/reliable-discord-client-irc-daemon&#34;&gt;Reliable Discord-client IRC Daemon (rdircd)&lt;/a&gt; - personal discord-client to irc-server translation daemon&lt;/h4&gt;
&lt;p&gt;Compatibility with irssi and ZNC was improved, history can now be automatically fetched and replayed from Discord servers and a &lt;code&gt;recv-replacements&lt;/code&gt; configuration was added for blocking or modify received messages.&lt;/p&gt;
&lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt;
&lt;p&gt;Taking care of user accounts and channels among other things.&lt;/p&gt;
&lt;h4 id=&#34;anope&#34;&gt;&lt;a href=&#34;https://www.anope.org/&#34;&gt;Anope&lt;/a&gt; – highly modular set of services&lt;/h4&gt;
&lt;p&gt;Many additions were made, including, but not limited to a redesigned RPC interface, support for JSON-RPC, example JavaScript and Ruby libraries for accessing the RPC interface, support for multiple targets in chanserv/modes, &lt;code&gt;OPERONLY&lt;/code&gt;, &lt;code&gt;UNUSED&lt;/code&gt; and &lt;code&gt;VANITY&lt;/code&gt; filters for botserv/botlist, expanded Atheme import capabilities, support for &amp;ldquo;services cloak&amp;rdquo; system in InspIRCd, support for hashed operator passwords and support for code authentication via IRC.&lt;/p&gt;
&lt;h4 id=&#34;atheme&#34;&gt;&lt;a href=&#34;https://atheme.github.io/&#34;&gt;Atheme&lt;/a&gt; - for large networks with high scalability requirements&lt;/h4&gt;
&lt;p&gt;The InspIRCd protocol module was improved.&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
    <item>
      <title>IRC technology news from the second half of 2024</title>
      <link>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2024/</link>
      <pubDate>Thu, 16 Jan 2025 13:00:06 +0200</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2024/</guid>
      <description>&lt;p&gt;There&amp;rsquo;s a smörgåsbord of IRC happenings in this post, including multiple new desktop clients as well as clients for Sega Megadrive/Genesis and those old Macs that look like birdhouses.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://fosdem.org/2025/schedule/event/fosdem-2025-6407-chatting-on-irc-in-2025-grandpa-what-s-up-/&#34;&gt;A presentation about IRC modernisation&lt;/a&gt; will be given at FOSDEM conference on 1 Feb 2025. A video recording will be made available after the conference.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s a new commercial service for bouncer access hosted in France called &lt;a href=&#34;https://irctoday.com/&#34;&gt;IRC Today&lt;/a&gt;. It is run by &lt;a href=&#34;https://delthas.fr/&#34;&gt;delthas&lt;/a&gt;, creator of the senpai client and contributor to projects such as soju.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.undernet.org/&#34;&gt;The Undernet network&lt;/a&gt;, established in 1993, now supports IRCv3 capabilities thanks to updates to its &lt;a href=&#34;https://github.com/UndernetIRC/ircu2&#34;&gt;ircu2&lt;/a&gt; daemon. The future is finally starting to become evenly distributed.&lt;/p&gt;
&lt;h3 id=&#34;protocol-specifications&#34;&gt;Protocol specifications&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/IRCv3.svg&#34;
    alt=&#34;IRCv3 logo&#34; width=&#34;80&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;The working group wrote &lt;a href=&#34;https://ircv3.net/2024/11/13/spec-round-up&#34;&gt;a spec round-up&lt;/a&gt; in November. A new version of &lt;a href=&#34;https://ircv3.net/specs/extensions/metadata&#34;&gt;a metadata specification&lt;/a&gt; was published as draft in September.&lt;/p&gt;
&lt;h3 id=&#34;documentation&#34;&gt;Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://modern.ircdocs.horse/&#34;&gt;Modern IRC Client Protocol&lt;/a&gt; docs received updates and clarifications related to &lt;code&gt;RPL_ENDOFWHOIS&lt;/code&gt;, &lt;code&gt;RPL_WHOISCHANNELS&lt;/code&gt;, &lt;code&gt;ISUPPORT&lt;/code&gt; tokens and &lt;code&gt;ERR_WASNOSUCHNICK&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;mobile-clients&#34;&gt;Mobile clients&lt;/h3&gt;
&lt;h4 id=&#34;goguma&#34;&gt;&lt;a href=&#34;https://codeberg.org/emersion/goguma&#34;&gt;goguma&lt;/a&gt; - for mobile Linux, iOS and Android&lt;/h4&gt;
&lt;p&gt;Support was added for server certificate pinning and &lt;code&gt;/oper&lt;/code&gt; command.&lt;/p&gt;
&lt;h4 id=&#34;irccloud&#34;&gt;&lt;a href=&#34;https://www.irccloud.com/&#34;&gt;IRCCloud&lt;/a&gt; - connect to any IRC server out there, and even Slack workspaces&lt;/h4&gt;
&lt;p&gt;The web app can now embed Bluesky, Mastodon and Reddit links, there&amp;rsquo;s an option to match your theme to your system&amp;rsquo;s dark mode setting, support was added to IRCv3 message redaction and bots can be marked as relays to improve the display of relayed messages.&lt;/p&gt;
&lt;h4 id=&#34;lith&#34;&gt;&lt;a href=&#34;https://lith.app/&#34;&gt;Lith&lt;/a&gt; - multiplatform WeeChat Relay client&lt;/h4&gt;
&lt;p&gt;Image URLs now get a thumbnail, buffers can be grouped by server name and the UI was made prettier.&lt;/p&gt;
&lt;h4 id=&#34;weechatrn&#34;&gt;&lt;a href=&#34;https://github.com/mhoran/weechatRN&#34;&gt;WeechatRN&lt;/a&gt; -  WeeChat relay client for mobile using WebSockets&lt;/h4&gt;
&lt;p&gt;Notifications were made smoother, keyboard animations were improved and the app look and feel was made more uniform and native-like.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/weechatrn.png&#34;
    alt=&#34;WeechatRN screenshot&#34; width=&#34;360&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;WeechatRN screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&#34;web-clients&#34;&gt;Web clients&lt;/h3&gt;
&lt;p&gt;Many of these include support for persistent history, so there is some overlap with the bouncer category.&lt;/p&gt;
&lt;h4 id=&#34;gamja&#34;&gt;&lt;a href=&#34;https://codeberg.org/emersion/gamja&#34;&gt;gamja&lt;/a&gt; – a bare-bones web client&lt;/h4&gt;
&lt;p&gt;Mode changes are now human-readable, files can be uploaded by dragging and dropping, multiple files can be uploaded at a time and reconnection behaviour is now snappier.&lt;/p&gt;
&lt;h4 id=&#34;irc-hybrid-client&#34;&gt;&lt;a href=&#34;https://github.com/cotarr/irc-hybrid-client&#34;&gt;irc-hybrid-client&lt;/a&gt; - single user hybrid client using JavaScript frontend and Node.js/Express backend&lt;/h4&gt;
&lt;p&gt;The accessibility (keyboard navigability) of the interface was improved.&lt;/p&gt;
&lt;h4 id=&#34;the-lounge&#34;&gt;&lt;a href=&#34;https://thelounge.chat/&#34;&gt;The Lounge&lt;/a&gt; - modern web client utilising Node.js&lt;/h4&gt;
&lt;p&gt;The accessibility of the interface was improved (nice trend!), support for &lt;code&gt;actual_username&lt;/code&gt; field was added to &lt;code&gt;whois&lt;/code&gt; and compatibility with InspIRCd was improved.&lt;/p&gt;
&lt;h3 id=&#34;desktop-clients&#34;&gt;Desktop clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/nhex.webp&#34;
    alt=&#34;nhex screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;nhex screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;circe&#34;&gt;&lt;a href=&#34;https://github.com/jorgenschaefer/circe&#34;&gt;Circe&lt;/a&gt; - a client for IRC in Emacs&lt;/h4&gt;
&lt;p&gt;Text with the same colour code for foreground and background is interpreted as a spoiler that can be revealed either by marking or upon mouse hover.&lt;/p&gt;
&lt;h4 id=&#34;comlink&#34;&gt;&lt;a href=&#34;https://github.com/rockorager/comlink&#34;&gt;comlink&lt;/a&gt; -  an experimental client &lt;/h4&gt;
&lt;p&gt;This is a new client started in 2024. It is written in Zig and can currently be installed either from &lt;a href=&#34;https://aur.archlinux.org/packages/comlink&#34;&gt;Arch Linux User Repository&lt;/a&gt; or using the Zig build system per instructions given in the readme.&lt;/p&gt;
&lt;h4 id=&#34;erc&#34;&gt;&lt;a href=&#34;https://www.gnu.org/savannah-checkouts/gnu/emacs/erc.html&#34;&gt;ERC&lt;/a&gt; - an Emacs IRC client&lt;/h4&gt;
&lt;p&gt;Dealing with ban lists via modules was made more convenient and truncation is now fine-tunable.&lt;/p&gt;
&lt;h4 id=&#34;halloy&#34;&gt;&lt;a href=&#34;https://github.com/squidowl/halloy&#34;&gt;Halloy&lt;/a&gt; – cross-platform client written in Rust&lt;/h4&gt;
&lt;p&gt;Text formatting is now possible via the &lt;code&gt;/format&lt;/code&gt; command, support was added for &lt;code&gt;CTCP&lt;/code&gt; queries &lt;code&gt;CLIENTINFO&lt;/code&gt;, &lt;code&gt;PING&lt;/code&gt;, &lt;code&gt;SOURCE&lt;/code&gt;, and &lt;code&gt;VERSION&lt;/code&gt;, notification sounds can be customised, IRCv3 capabilities &lt;code&gt;chghost&lt;/code&gt;, &lt;code&gt;account-notify&lt;/code&gt;, &lt;code&gt;extended-monitor&lt;/code&gt;, &lt;code&gt;msgid&lt;/code&gt;, &lt;code&gt;chathistory&lt;/code&gt; and &lt;code&gt;extended-join&lt;/code&gt; are now supported, themes can be customised better, including in a dedicated theme editor, many new configuration options were added, panes can be undocked into separate windows, there are now buffers to view highlights across all servers and examine logs and casemapping is supported via &lt;code&gt;ISUPPORT&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;irken&#34;&gt;&lt;a href=&#34;https://github.com/dlowe-net/irken&#34;&gt;Irken&lt;/a&gt; – a small, modular client written in Tcl/Tk&lt;/h4&gt;
&lt;p&gt;The ability to use client certificates was added.&lt;/p&gt;
&lt;h4 id=&#34;kvirc&#34;&gt;&lt;a href=&#34;https://www.kvirc.net/&#34;&gt;KVIrc&lt;/a&gt; – client built with Qt&lt;/h4&gt;
&lt;p&gt;The application theme now respects the system&amp;rsquo;s dark mode on Windows.&lt;/p&gt;
&lt;h4 id=&#34;mirc&#34;&gt;&lt;a href=&#34;https://www.mirc.com/&#34;&gt;mIRC&lt;/a&gt; – 95 ‘til infinity (Windows-only)&lt;/h4&gt;
&lt;p&gt;The progress of DCC transfers is shown in Windows taskbar and SVG files can now be loaded.&lt;/p&gt;
&lt;h4 id=&#34;nhex&#34;&gt;&lt;a href=&#34;https://nhexirc.com/&#34;&gt;nhex&lt;/a&gt; – a next-generation client inspired by HexChat&lt;/h4&gt;
&lt;p&gt;Another new client started in 2024. It uses the Tauri framework, so it also adapts to mobile views. One of its goals is to provide the frontend as a web application.&lt;/p&gt;
&lt;h4 id=&#34;pidgin&#34;&gt;&lt;a href=&#34;https://pidgin.im/&#34;&gt;Pidgin&lt;/a&gt; - a multi-network/protocol chat application&lt;/h4&gt;
&lt;p&gt;Support was added for typing notifications alongside many basic commands as the IRCv3 protocol is being implemented from scratch. The first experimental version of the next major Pidgin release was tagged on New Year&amp;rsquo;s eve and &lt;a href=&#34;https://discourse.imfreedom.org/t/pidgin-3-0-experimental-1-has-been-released/227&#34;&gt;there&amp;rsquo;s a really interesting announcement post explaining the tricky technical challenges in modernising this piece of software&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;rudechat&#34;&gt;&lt;a href=&#34;https://github.com/ShrugShoulders/RudeChat&#34;&gt;RudeChat&lt;/a&gt; - Python client designed to be fast, portable, and fun&lt;/h4&gt;
&lt;p&gt;This client was started in 2023 (or maybe earlier) and is now becoming more featureful. It handles IRCv3 capabilities like &lt;code&gt;away-notify&lt;/code&gt;, &lt;code&gt;account-notify&lt;/code&gt; and &lt;code&gt;extended-join&lt;/code&gt;. Builds are available for Linux and Windows.&lt;/p&gt;
&lt;h4 id=&#34;srain&#34;&gt;&lt;a href=&#34;https://srain.silverrainz.me/&#34;&gt;Srain&lt;/a&gt; – modern client built with GTK&lt;/h4&gt;
&lt;p&gt;Chat list order can be configured and &lt;code&gt;server-time&lt;/code&gt; data is converted to local time zone.&lt;/p&gt;
&lt;h4 id=&#34;wallops&#34;&gt;&lt;a href=&#34;https://jcs.org/wallops&#34;&gt;Wallops&lt;/a&gt; - a modern client for classic Mac OS&lt;/h4&gt;
&lt;p&gt;Started in 2022, this one is for lovers of vintage computing. It does not seem to support IRCv3 features yet, but versions 2.0 and 2.1 were released with lots of fundamental work. There is &lt;a href=&#34;https://jcs.org/2022/03/05/serial&#34;&gt;a video with a brief demonstration of the client in action&lt;/a&gt;.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/wallops.gif&#34;
    alt=&#34;Wallops screenshot&#34; width=&#34;512&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Wallops screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&#34;terminal-clients&#34;&gt;Terminal clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/smdt.png&#34;
    alt=&#34;Ircing on Sega Megadrive/Genesis via SMDT&#34; width=&#34;320&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Ircing on Sega Megadrive/Genesis via SMDT&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;girc-lisp&#34;&gt;&lt;a href=&#34;https://codeberg.org/McParen/girc&#34;&gt;girc&lt;/a&gt; - client written in Common Lisp&lt;/h4&gt;
&lt;p&gt;Support was added for IRCv3 message tags.&lt;/p&gt;
&lt;h4 id=&#34;glirc&#34;&gt;&lt;a href=&#34;https://github.com/glguy/irc-core&#34;&gt;glirc&lt;/a&gt; - Haskell library and console client&lt;/h4&gt;
&lt;p&gt;Support was added for IRCv3 message tags and server-side &lt;code&gt;/help&lt;/code&gt; and the handling of &lt;code&gt;INVITE&lt;/code&gt; and &lt;code&gt;MONITOR&lt;/code&gt; was improved.&lt;/p&gt;
&lt;h4 id=&#34;kirc&#34;&gt;&lt;a href=&#34;https://mcpcpc.github.io/kirc&#34;&gt;kirc&lt;/a&gt; - a tiny client written in POSIX C99&lt;/h4&gt;
&lt;p&gt;The DCC implementation was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;senpai&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~delthas/senpai/&#34;&gt;senpai&lt;/a&gt; - TUI client made for bouncers&lt;/h4&gt;
&lt;p&gt;Zero-width joiner emojis can now be edited alongside other emoji improvements, link image previews were implemented, the UX of autocompletion was improved, the window title now shows the count of unread highlights, files can now be uploaded either by dragging and dropping or with a command, formatting and links are now rendered in topics, channel names and nicks can be clicked and pinning and muting of buffers is possible per &lt;code&gt;metadata-2&lt;/code&gt; spec and a compatible bouncer.&lt;/p&gt;
&lt;h4 id=&#34;smdt&#34;&gt;&lt;a href=&#34;https://github.com/SweMonkey/smdt&#34;&gt;SMDT&lt;/a&gt; - Sega Megadrive/Genesis terminal emulator, telnet and IRC client&lt;/h4&gt;
&lt;p&gt;Like Wallops, this is another art project type of love letter to vintage hardware. Started in late 2023, the IRC client in this software bundle keeps receiving improvements and now supports up to six concurrent channels and shows channel updates in a status bar.&lt;/p&gt;
&lt;h4 id=&#34;swirc&#34;&gt;&lt;a href=&#34;https://www.nifty-networks.net/swirc/&#34;&gt;Swirc&lt;/a&gt; - lightweight ICB and IRC client&lt;/h4&gt;
&lt;p&gt;Handling of nickname issues was made more robust, netsplits and netjoins are now handled even in cases where servers don&amp;rsquo;t support the IRCv3 &lt;code&gt;BATCH&lt;/code&gt; events, commands &lt;code&gt;/wholeft&lt;/code&gt;, &lt;code&gt;/announce&lt;/code&gt;, &lt;code&gt;/ctcp&lt;/code&gt; and &lt;code&gt;/ftp&lt;/code&gt; were added, support was added for &lt;code&gt;account-tag&lt;/code&gt;, &lt;code&gt;chghost&lt;/code&gt;, &lt;code&gt;extended-join&lt;/code&gt; and &lt;code&gt;cap-notify&lt;/code&gt;, SASL authentication mechanisms &lt;code&gt;SCRAM-SHA-1&lt;/code&gt; and &lt;code&gt;SCRAM-SHA-512&lt;/code&gt; were added and windows can be switched by entering their reference number like &lt;code&gt;/1&lt;/code&gt;, &lt;code&gt;/2&lt;/code&gt;, &lt;code&gt;/3&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;tiny&#34;&gt;&lt;a href=&#34;https://github.com/osa1/tiny&#34;&gt;tiny&lt;/a&gt; – client written in Rust&lt;/h4&gt;
&lt;p&gt;IRC colour code handling was improved.&lt;/p&gt;
&lt;h4 id=&#34;weechat&#34;&gt;&lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; - the extensible chat client&lt;/h4&gt;
&lt;p&gt;The option &lt;code&gt;addreplace&lt;/code&gt; is now included in all commands that have an &lt;code&gt;add&lt;/code&gt; option, the API of the relay was expanded and support was added for displaying the autonomous system number of a user in &lt;code&gt;WHOIS&lt;/code&gt; info on servers that implement the newly-invented &lt;code&gt;RPL_WHOISASN&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;bouncers&#34;&gt;Bouncers&lt;/h3&gt;
&lt;p&gt;They stay online, so you don’t have to!&lt;/p&gt;
&lt;h4 id=&#34;soju&#34;&gt;&lt;a href=&#34;https://codeberg.org/emersion/soju&#34;&gt;soju&lt;/a&gt; – multi-user bouncer&lt;/h4&gt;
&lt;p&gt;It is now possible to limit the number of networks per user, admins can impersonate users with &lt;code&gt;SASL&lt;/code&gt;, videos and PDFs can be previewed after uploading, an HTTP authentication backend was added, support was added for the work-in-progress &lt;code&gt;SAFERATE&lt;/code&gt; spec that lets clients know they will not be disconnected due to rate-limiting of messages, &lt;code&gt;irc://&lt;/code&gt;, &lt;code&gt;ws://&lt;/code&gt; and &lt;code&gt;http://&lt;/code&gt; URIs can be used for listening for convenience when running behind a reverse proxy, a &lt;code&gt;channel create&lt;/code&gt; service command was added and support was added for channel pinned/muted status per the &lt;code&gt;metadata-2&lt;/code&gt; spec.&lt;/p&gt;
&lt;h4 id=&#34;znc&#34;&gt;&lt;a href=&#34;https://wiki.znc.in/ZNC&#34;&gt;ZNC&lt;/a&gt; - an advanced bouncer&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;chghost&lt;/code&gt; capability was implemented.&lt;/p&gt;
&lt;h3 id=&#34;daemons&#34;&gt;Daemons&lt;/h3&gt;
&lt;h4 id=&#34;ergo&#34;&gt;&lt;a href=&#34;https://ergo.chat/&#34;&gt;Ergo&lt;/a&gt; - combining the features of an ircd, a services framework, and a bouncer&lt;/h4&gt;
&lt;p&gt;The draft spec &lt;code&gt;extended-isupport&lt;/code&gt; for receiving information before registering a connection was implemented.&lt;/p&gt;
&lt;h4 id=&#34;inspircd&#34;&gt;&lt;a href=&#34;https://www.inspircd.org/&#34;&gt;InspIRCd&lt;/a&gt; - stable, high-performance and modular&lt;/h4&gt;
&lt;p&gt;The whowas database can now be updated on nick change as well as quit with &lt;code&gt;&amp;lt;whowas:nickupdate&amp;gt;&lt;/code&gt;, colour names in Message of the Day (MOTD) files can be made human readable using &lt;code&gt;\c[fg-color,bg-color]&lt;/code&gt;, the channel list of services pseudoclients can be shown to server operators thanks to the &lt;code&gt;hideservices&lt;/code&gt; option of the &lt;code&gt;hidechans&lt;/code&gt; module and support was added for named DNSBL replies and showing the ban reason.&lt;/p&gt;
&lt;h4 id=&#34;ircd-hybrid&#34;&gt;&lt;a href=&#34;https://www.ircd-hybrid.org/&#34;&gt;Ircd-hybrid&lt;/a&gt; - a lightweight, high-performance daemon&lt;/h4&gt;
&lt;p&gt;The module API was rewritten for improved flexibility, the info and user mode subsystems now support dynamic registration and unregistration of info entries and user modes, users can optionally view a simplified network topology where all servers appear as if they are directly connected to the local server, the MOTD file path can be configured, &lt;code&gt;INFO&lt;/code&gt; command output now includes namespaces and also shows entries from the admin config block.&lt;/p&gt;
&lt;h4 id=&#34;sable&#34;&gt;&lt;a href=&#34;https://github.com/Libera-Chat/sable&#34;&gt;Sable&lt;/a&gt; – an experimental chat server&lt;/h4&gt;
&lt;p&gt;Libera Chat developers have been working on this for a few years, but I haven&amp;rsquo;t hurried to cover it as it is not deployed in production yet. Server nodes use a &lt;a href=&#34;https://en.wikipedia.org/wiki/Gossip_protocol&#34;&gt;Gossip&lt;/a&gt;-like protocol to communicate, which means no more netsplits. Persistent user presence is built in. During this development season a history service was added and an &lt;code&gt;INFO&lt;/code&gt; command was implemented.&lt;/p&gt;
&lt;h4 id=&#34;unrealircd&#34;&gt;&lt;a href=&#34;https://www.unrealircd.org/&#34;&gt;UnrealIRCd&lt;/a&gt; - the most widely deployed IRCd&lt;/h4&gt;
&lt;p&gt;The GeoIP module now contains information about Autonomous System Numbers, which gets displayed in contexts such as &lt;code&gt;WHOIS&lt;/code&gt; and can be used in functionality such as extended server bans. Channel creation can now be restricted in the &lt;code&gt;set::restrict-commands&lt;/code&gt; block, channel bans can be inherited from another channel, &lt;code&gt;vhost&lt;/code&gt;s (virtual hosts, fake hostnames) can be set to users automatically upon login and the SSL/TLS defaults were improved.&lt;/p&gt;
&lt;h3 id=&#34;bots&#34;&gt;Bots&lt;/h3&gt;
&lt;p&gt;This and the next section has been curated with programming language diversity in mind.&lt;/p&gt;
&lt;h4 id=&#34;eggdrop&#34;&gt;&lt;a href=&#34;https://eggheads.org/&#34;&gt;Eggdrop&lt;/a&gt; - the oldest bot still in active development (C/Tcl)&lt;/h4&gt;
&lt;p&gt;The new Python scripting functionality can be enjoyed in a stable v1.10.0 release and a lot of the work during this development season was about polishing the implementation.&lt;/p&gt;
&lt;h4 id=&#34;limnoria&#34;&gt;&lt;a href=&#34;https://limnoria.net/&#34;&gt;Limnoria&lt;/a&gt; - robust, full-featured, and user/programmer-friendly bot (Python)&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;account-extban&lt;/code&gt; and the RSS plugin now supports randomisation of feed items.&lt;/p&gt;
&lt;h4 id=&#34;minion&#34;&gt;&lt;a href=&#34;https://github.com/S3x0r/MINION&#34;&gt;MINION&lt;/a&gt; - easy to use bot (PHP)&lt;/h4&gt;
&lt;p&gt;This old bot saw lots of updates this season. The displaying and logging of messages can be configured granularly, the bot can now guard and set channel topics, custom raw commands can be set to run upon startup, SSL connection support was added, user ignoring can be configured and flood protection was added.&lt;/p&gt;
&lt;h4 id=&#34;pbot&#34;&gt;&lt;a href=&#34;https://github.com/pragma-/pbot/&#34;&gt;PBot&lt;/a&gt; – a pragmatic bot (Perl)&lt;/h4&gt;
&lt;p&gt;An AntiHello plugin was added to warn about stand-alone greetings in large channels, the AntiAway plugin that kicks people employing an auto-away mechanism was made more robust and many game plugins received improvements.&lt;/p&gt;
&lt;h4 id=&#34;sitbot&#34;&gt;&lt;a href=&#34;https://github.com/chzchzchz/sitbot&#34;&gt;sitbot&lt;/a&gt; - premium bot (Go)&lt;/h4&gt;
&lt;p&gt;Reading and rendering of formatting and colours was improved.&lt;/p&gt;
&lt;h4 id=&#34;sopel&#34;&gt;&lt;a href=&#34;https://sopel.chat/&#34;&gt;Sopel&lt;/a&gt; - lightweight, easy-to-use utility bot (Python)&lt;/h4&gt;
&lt;p&gt;Escaping backslashes now works in the find plugin.&lt;/p&gt;
&lt;h3 id=&#34;libraries-frameworks-and-utilities&#34;&gt;Libraries, frameworks and utilities&lt;/h3&gt;
&lt;h4 id=&#34;cinch&#34;&gt;&lt;a href=&#34;https://github.com/blolol/cinch&#34;&gt;Cinch&lt;/a&gt; - bot framework (Ruby)&lt;/h4&gt;
&lt;p&gt;An actively maintained fork of a bot framework. Version 2.4.0 was released with support for spoofing nicknames using the &lt;code&gt;draft/relaymsg&lt;/code&gt; capability.&lt;/p&gt;
&lt;h4 id=&#34;deno-irc&#34;&gt;&lt;a href=&#34;https://github.com/jeromeludmann/deno-irc&#34;&gt;Deno-irc&lt;/a&gt; - client protocol module for Deno (JavaScript)&lt;/h4&gt;
&lt;p&gt;An exponential backoff option was added to the reconnect plugin and the code was adapted to Deno v2.&lt;/p&gt;
&lt;h4 id=&#34;girc&#34;&gt;&lt;a href=&#34;https://github.com/lrstanley/girc&#34;&gt;girc&lt;/a&gt; - a flexible library (Go)&lt;/h4&gt;
&lt;p&gt;Many more numeric IRC reply constants were added.&lt;/p&gt;
&lt;h4 id=&#34;go-ircevo&#34;&gt;&lt;a href=&#34;https://github.com/kofany/go-ircevo&#34;&gt;go-ircevo&lt;/a&gt; - an enhanced framework for interacting with servers (Go)&lt;/h4&gt;
&lt;p&gt;This is an evolved and extended version of the go-ircevent library. Nick change error handling was improved, support was added for DCC and proxy integration and connection status monitoring was added.&lt;/p&gt;
&lt;h4 id=&#34;ibis&#34;&gt;&lt;a href=&#34;https://docs.imfreedom.org/ibis/&#34;&gt;Ibis&lt;/a&gt; - a &lt;a href=&#34;https://docs.gtk.org/gobject/&#34;&gt;GObject&lt;/a&gt; based library (C)&lt;/h4&gt;
&lt;p&gt;Parsing of &lt;code&gt;CTCP&lt;/code&gt; messages and &lt;code&gt;ISUPPORT&lt;/code&gt; was added and &lt;code&gt;standard-replies&lt;/code&gt; was implemented alongside many foundational features for this young library.&lt;/p&gt;
&lt;h4 id=&#34;irc-framework&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/irc-framework&#34;&gt;irc-framework&lt;/a&gt; – for bots and full clients (Node.js)&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;CLIENTTAGDENY&lt;/code&gt;, &lt;code&gt;whowas&lt;/code&gt; now returns all responses from the server and documentation was added for account configuration.&lt;/p&gt;
&lt;h4 id=&#34;irc-toolkit&#34;&gt;&lt;a href=&#34;https://github.com/kylef/irctk&#34;&gt;irc-toolkit&lt;/a&gt; – a client library (Python)&lt;/h4&gt;
&lt;p&gt;Accessors were added for message tags, msgids, labels and batches. &lt;code&gt;account-tag&lt;/code&gt;, &lt;code&gt;server-time&lt;/code&gt; and &lt;code&gt;message-tags&lt;/code&gt; are now enabled by default and a command was added to send a notice message to a target.&lt;/p&gt;
&lt;h3 id=&#34;bridges&#34;&gt;Bridges&lt;/h3&gt;
&lt;h4 id=&#34;dis4irc&#34;&gt;&lt;a href=&#34;https://github.com/zachbr/Dis4IRC&#34;&gt;Dis4IRC&lt;/a&gt; - a modern Discord &amp;lt;-&amp;gt; IRC bridge&lt;/h4&gt;
&lt;p&gt;Avatar lookup for IRC users was improved.&lt;/p&gt;
&lt;h4 id=&#34;discordrc&#34;&gt;&lt;a href=&#34;https://discordrc.com/&#34;&gt;Discord Relay Chat&lt;/a&gt; - an IRC client using Discord as the frontend&lt;/h4&gt;
&lt;p&gt;Chunking of long messages was implemented.&lt;/p&gt;
&lt;h4 id=&#34;heisenbridge&#34;&gt;&lt;a href=&#34;https://github.com/hifi/heisenbridge&#34;&gt;Heisenbridge&lt;/a&gt; - a bouncer-style Matrix IRC bridge&lt;/h4&gt;
&lt;p&gt;Support was added for authenticated media by way of a proxy.&lt;/p&gt;
&lt;h4 id=&#34;irgramd&#34;&gt;&lt;a href=&#34;https://src.presi.org/darcs/irgramd&#34;&gt;irgramd&lt;/a&gt; - connect from an IRC client to Telegram as a regular user&lt;/h4&gt;
&lt;p&gt;Replies to deleted messages are now handled, a re-upload command was added to upload files or media as a reply to a message, volatile events like delete, edit, react are now shown in the history, handling of reactions was made more robust, a reaction command was added to send emoticon-&amp;gt;emoji as a Telegram reaction and IRC channel topics will now be copied from Telegram channel/chat descriptions.&lt;/p&gt;
&lt;h4 id=&#34;localslackirc&#34;&gt;&lt;a href=&#34;https://codeberg.org/ltworf/localslackirc&#34;&gt;localslackirc&lt;/a&gt; - gateway for Slack, running on localhost for one user&lt;/h4&gt;
&lt;p&gt;Websockets usage was updated after Slack API changes.&lt;/p&gt;
&lt;h4 id=&#34;reliable-discord&#34;&gt;&lt;a href=&#34;https://codeberg.org/mk-fg/reliable-discord-client-irc-daemon&#34;&gt;Reliable Discord-client IRC Daemon (rdircd)&lt;/a&gt; - personal discord-client to irc-server translation daemon&lt;/h4&gt;
&lt;p&gt;Pinned messages now show an appropriate prefix, support was added for &lt;code&gt;message-tags&lt;/code&gt;, Discord typing notifications are passed through to IRC, IRCv3 capability handling was improved, custom guild emojis can be sent from IRC and IRC away status is now bridged to Discord.&lt;/p&gt;
&lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt;
&lt;p&gt;Taking care of user accounts and channels among other things.&lt;/p&gt;
&lt;h4 id=&#34;anope&#34;&gt;&lt;a href=&#34;https://www.anope.org/&#34;&gt;Anope&lt;/a&gt; – highly modular set of services&lt;/h4&gt;
&lt;p&gt;Account identifiers are shown in nickserv/info output, a &lt;code&gt;preservedisplay&lt;/code&gt; option for controlling display nick expiration was added to the &lt;code&gt;nickserv&lt;/code&gt; module, SQL column support was expanded, a nickserv/drop/display oper privilege was added, the mysql module now has support for database migrations and UNIX sockets, a server-side alias can now be configured for each service and its use controlled with the &lt;code&gt;servicealias&lt;/code&gt; option, &lt;code&gt;NEXTBANS&lt;/code&gt; are supported on UnrealIRCd and users may receive channel URLs upon joining.&lt;/p&gt;
&lt;h4 id=&#34;atheme&#34;&gt;&lt;a href=&#34;https://atheme.github.io/&#34;&gt;Atheme&lt;/a&gt; - for large networks with high scalability requirements&lt;/h4&gt;
&lt;p&gt;The InspIRCd protocol module was updated.&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
    <item>
      <title>IRC technology news from the first half of 2024</title>
      <link>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_first_half_of_2024/</link>
      <pubDate>Tue, 16 Jul 2024 16:00:06 +0200</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_first_half_of_2024/</guid>
      <description>&lt;p&gt;There is a head-spinning amount of IRC news to share again.&lt;/p&gt;
&lt;p&gt;The big ticket item for this season is &lt;a href=&#34;https://www.inspircd.org/2024/06/29/v400-released.html&#34;&gt;the release of InspIRCd v4.0.0&lt;/a&gt; server software after five years of development. They have &lt;a href=&#34;https://docs.inspircd.org/4/overview/&#34;&gt;a nice overview&lt;/a&gt; of the biggest changes.&lt;/p&gt;
&lt;h3 id=&#34;protocol-specifications&#34;&gt;Protocol specifications&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/IRCv3.svg&#34;
    alt=&#34;IRCv3 logo&#34; width=&#34;80&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;A work-in-progress &lt;a href=&#34;https://ircv3.net/specs/extensions/message-redaction&#34;&gt;REDACT&lt;/a&gt; command was added, to be used for moderation and retracting accidentally sent messages among other things.&lt;/p&gt;
&lt;h3 id=&#34;documentation&#34;&gt;Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://modern.ircdocs.horse/&#34;&gt;Modern IRC Client Protocol&lt;/a&gt; docs received updates and clarifications related to &lt;code&gt;KICK&lt;/code&gt;, &lt;code&gt;TOPIC&lt;/code&gt; and &lt;code&gt;CHANTYPES&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;mobile-clients&#34;&gt;Mobile clients&lt;/h3&gt;
&lt;h4 id=&#34;coreirc&#34;&gt;&lt;a href=&#34;https://coreirc.com/&#34;&gt;CoreIRC&lt;/a&gt; – Android client&lt;/h4&gt;
&lt;p&gt;The app can now access battery optimisation settings in order to prevent random disconnects and is now compatible with Android 13 and 14.&lt;/p&gt;
&lt;h4 id=&#34;goguma&#34;&gt;&lt;a href=&#34;https://sr.ht/~emersion/goguma/&#34;&gt;goguma&lt;/a&gt; - for mobile Linux, iOS and Android&lt;/h4&gt;
&lt;p&gt;Version 0.7.0 was released in June with support for file uploads using the &lt;a href=&#34;https://git.sr.ht/~emersion/soju/tree/master/item/doc/ext/filehost.md&#34;&gt;soju.im/FILEHOST&lt;/a&gt; specification, Apple Push Notification Service (APNS) on iOS, text and photo sharing on iOS, &lt;code&gt;/part&lt;/code&gt; command, &lt;code&gt;STATUSMSG&lt;/code&gt; and more robust auto-reconnect functionality. The app now uses Material 3 theme.&lt;/p&gt;
&lt;h4 id=&#34;irccloud&#34;&gt;&lt;a href=&#34;https://www.irccloud.com/&#34;&gt;IRCCloud&lt;/a&gt; - connect to any IRC server out there, and even Slack workspaces&lt;/h4&gt;
&lt;p&gt;The iOS app got fixes for some visual glitches.&lt;/p&gt;
&lt;h4 id=&#34;lith&#34;&gt;&lt;a href=&#34;https://lith.app/&#34;&gt;Lith&lt;/a&gt; - multiplatform WeeChat Relay client&lt;/h4&gt;
&lt;p&gt;Improvements were made to the display of HotList (activity notifications in buffers) and support was added for message background colour.&lt;/p&gt;
&lt;h3 id=&#34;web-clients&#34;&gt;Web clients&lt;/h3&gt;
&lt;p&gt;Many of these include support for persistent history, so there is some overlap with the bouncer category.&lt;/p&gt;
&lt;h4 id=&#34;gamja&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/gamja&#34;&gt;gamja&lt;/a&gt; – a bare-bones web client&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;soju.im/filehost&lt;/code&gt;, the number of highlights is shown in window title, realname is now shown as a tooltip, geo URIs are included in linkification, messages are no longer marked as read when window is not in focus and support was added for &lt;code&gt;AUTHENTICATE&lt;/code&gt; chunking.&lt;/p&gt;
&lt;h4 id=&#34;irc-hybrid-client&#34;&gt;&lt;a href=&#34;https://github.com/cotarr/irc-hybrid-client&#34;&gt;irc-hybrid-client&lt;/a&gt; - single user hybrid client using JavaScript frontend and Node.js/Express backend&lt;/h4&gt;
&lt;p&gt;Hidden panels may automatically open in response to channel events and a rate limiter was added for invalid password attempts.&lt;/p&gt;
&lt;h4 id=&#34;kiwiirc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwiirc&#34;&gt;KiwiIRC&lt;/a&gt; – uses static files and supports theming and plugins (JavaScript)&lt;/h4&gt;
&lt;p&gt;Away status handling was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;the-lounge&#34;&gt;&lt;a href=&#34;https://thelounge.chat/&#34;&gt;The Lounge&lt;/a&gt; - modern web client utilising Node.js&lt;/h4&gt;
&lt;p&gt;The linkifier was improved and expanded, a shortcut was added for navigating between channels with unread messages and the code base was refactored and cleaned up in many places.&lt;/p&gt;
&lt;h3 id=&#34;desktop-clients&#34;&gt;Desktop clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/urchat.png&#34;
    alt=&#34;urChat screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;urChat screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;erc&#34;&gt;&lt;a href=&#34;https://www.gnu.org/savannah-checkouts/gnu/emacs/erc.html&#34;&gt;ERC&lt;/a&gt; - an Emacs IRC client&lt;/h4&gt;
&lt;p&gt;Improvements and additions include more flexible sending and displaying of prompt input and a querypoll fallback for the IRCv3 Monitor extension.&lt;/p&gt;
&lt;h4 id=&#34;halloy&#34;&gt;&lt;a href=&#34;https://github.com/squidowl/halloy&#34;&gt;Halloy&lt;/a&gt; – cross-platform client written in Rust&lt;/h4&gt;
&lt;p&gt;Halloy enjoyed a very active development season with additions such as options for showing a topic banner for channels, colorising nicks in the nick list, controlling application scale factor, loading a separate PEM PKCS#8 encoded key for SASL authentication, improved UX for autocompletion, ability to toggle Op and Voice from user context menu in channels, file transfer support, support for IRCv3 &lt;code&gt;multi-prefix&lt;/code&gt;, &lt;code&gt;message-tags&lt;/code&gt;, &lt;code&gt;WHOX&lt;/code&gt;, and &lt;code&gt;UTF8ONLY&lt;/code&gt;, support for socks5 and http proxy configurations and the ability to open &lt;code&gt;irc://&lt;/code&gt; and &lt;code&gt;ircs://&lt;/code&gt; URL schemes. The configuration file format switched from YAML to TOML.&lt;/p&gt;
&lt;h4 id=&#34;hexchat&#34;&gt;&lt;a href=&#34;https://hexchat.github.io/&#34;&gt;HexChat&lt;/a&gt; - client for Windows and UNIX-like operating systems&lt;/h4&gt;
&lt;p&gt;Unfortunately HexChat development &lt;a href=&#34;https://hexchat.github.io/news/2.16.2.html&#34;&gt;came to a halt with the release of version 2.16.2&lt;/a&gt;. There are several forks, but no one has announced they would be picking up the torch with regards to maintenance. That said, &lt;a href=&#34;https://github.com/SoniEx2/sonis-fork-of-hexchat&#34;&gt;Soni&amp;rsquo;s fork&lt;/a&gt; now includes contribution guidelines, so perhaps this addition can be taken as an invitation to collaborate. The software is in need of extensive updates to become compatible with newer versions of GTK+ UI toolkit.&lt;/p&gt;
&lt;h4 id=&#34;kvirc&#34;&gt;&lt;a href=&#34;https://www.kvirc.net/&#34;&gt;KVIrc&lt;/a&gt; – client built with Qt&lt;/h4&gt;
&lt;p&gt;Qt toolkit version 6 is now used on all platforms, a vertical line margin option was added for making ASCII art look nice, displaying contextual help was made to work again and support for running the application as portable was improved.&lt;/p&gt;
&lt;h4 id=&#34;konversation&#34;&gt;&lt;a href=&#34;https://konversation.kde.org/&#34;&gt;Konversation&lt;/a&gt; – KDE’s IRC client for Windows, Linux and BSDs&lt;/h4&gt;
&lt;p&gt;The application code was ported to Qt 6 and KDE Frameworks 6.&lt;/p&gt;
&lt;h4 id=&#34;mirc&#34;&gt;&lt;a href=&#34;https://www.mirc.com/&#34;&gt;mIRC&lt;/a&gt; – 95 ‘til infinity (Windows-only)&lt;/h4&gt;
&lt;p&gt;Additions and improvements in versions 7.76 and 7.77 include support for larger GUI icons for high resolution monitors, server login support for &lt;code&gt;SCRAM-SHA-224/384/512&lt;/code&gt; authentication and support for translated text in all dialogs.&lt;/p&gt;
&lt;h4 id=&#34;pidgin&#34;&gt;&lt;a href=&#34;https://pidgin.im/&#34;&gt;Pidgin&lt;/a&gt; - a multi-network/protocol chat application&lt;/h4&gt;
&lt;p&gt;The IRCv3 protocol plugin started leveraging a new library called &lt;a href=&#34;https://discourse.imfreedom.org/t/ibis-an-ircv3-integration-library/159&#34;&gt;Ibis&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;relay-irc&#34;&gt;&lt;a href=&#34;https://github.com/Alex313031/Relay-IRC&#34;&gt;Relay IRC&lt;/a&gt; - client built with Electron &amp;amp; React (JavaScript)&lt;/h4&gt;
&lt;p&gt;This is a reincarnation of Lax, which I featured in a couple of earlier posts. Quite some improvements were made to the UI, performance and logging.&lt;/p&gt;
&lt;h4 id=&#34;textual&#34;&gt;&lt;a href=&#34;https://www.codeux.com/textual/&#34;&gt;Textual&lt;/a&gt; – client for macOS&lt;/h4&gt;
&lt;p&gt;After a few years of hiatus, two new versions were released with 7.2.3 as the latest. The &lt;code&gt;sysinfo&lt;/code&gt; command was improved and many fixes were made.&lt;/p&gt;
&lt;h4 id=&#34;urchat&#34;&gt;&lt;a href=&#34;https://github.com/matty-r/urChat&#34;&gt;urChat&lt;/a&gt; - a Java based client&lt;/h4&gt;
&lt;p&gt;Originally started in 2014, development resumed last year. During this season, proxy support was added alongside lots of UI work.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/relay-irc.png&#34;
    alt=&#34;Relay IRC screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Relay IRC screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h3 id=&#34;terminal-clients&#34;&gt;Terminal clients&lt;/h3&gt;
&lt;h4 id=&#34;girc-lisp&#34;&gt;&lt;a href=&#34;https://github.com/McParen/girc&#34;&gt;girc&lt;/a&gt; - client written in Common Lisp&lt;/h4&gt;
&lt;p&gt;It is now possible to toggle the display of the channel topic, an autojoin argument was added and the buffer is now represented as a tree which can also be displayed as tabs.&lt;/p&gt;
&lt;h4 id=&#34;glirc&#34;&gt;&lt;a href=&#34;https://github.com/glguy/irc-core&#34;&gt;glirc&lt;/a&gt; - Haskell library and console client&lt;/h4&gt;
&lt;p&gt;An &lt;code&gt;/in&lt;/code&gt; command was added for running commands in contexts other than the currently focused window.&lt;/p&gt;
&lt;h4 id=&#34;irssi&#34;&gt;&lt;a href=&#34;https://irssi.org/&#34;&gt;Irssi&lt;/a&gt; - your text mode chatting application since 1999&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;SCRAM-SHA-256&lt;/code&gt; and &lt;code&gt;SCRAM-SHA-512&lt;/code&gt; challenge-response SASL authentication.&lt;/p&gt;
&lt;h4 id=&#34;senpai&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~delthas/senpai/&#34;&gt;senpai&lt;/a&gt; - TUI client made for bouncers&lt;/h4&gt;
&lt;p&gt;A &lt;code&gt;BOUNCER&lt;/code&gt; command was added for easier interaction with the soju bouncer, a handy in-client help feature was added, custom notifications can now be configured to be sent directly, bypassing the terminal and support was added for an Operating System Command (OSC) to set an app ID (currently only supported by &lt;a href=&#34;https://codeberg.org/dnkl/foot&#34;&gt;foot terminal emulator&lt;/a&gt;).&lt;/p&gt;
&lt;h4 id=&#34;swirc&#34;&gt;&lt;a href=&#34;https://www.nifty-networks.net/swirc/&#34;&gt;Swirc&lt;/a&gt; - lightweight ICB and IRC client&lt;/h4&gt;
&lt;p&gt;Additions include expanded tab completion for commands, support for translations and new commands &lt;code&gt;/voice&lt;/code&gt; and &lt;code&gt;/devoice&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;weechat&#34;&gt;&lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; - the extensible chat client&lt;/h4&gt;
&lt;p&gt;Support was added for colors in messages and big changes were made to the relay machinery, including the addition of an HTTP REST API relay type.&lt;/p&gt;
&lt;h3 id=&#34;bouncers&#34;&gt;Bouncers&lt;/h3&gt;
&lt;p&gt;They stay online, so you don’t have to!&lt;/p&gt;
&lt;h4 id=&#34;soju&#34;&gt;&lt;a href=&#34;https://codeberg.org/emersion/soju&#34;&gt;soju&lt;/a&gt; – multi-user bouncer&lt;/h4&gt;
&lt;p&gt;File uploads are now supported and getting an invite to a previously saved channel now leads to automatically joining it.&lt;/p&gt;
&lt;h4 id=&#34;znc&#34;&gt;&lt;a href=&#34;https://wiki.znc.in/ZNC&#34;&gt;ZNC&lt;/a&gt; - an advanced bouncer&lt;/h4&gt;
&lt;p&gt;Version 1.9.0 was released with capability negotiation support.&lt;/p&gt;
&lt;h3 id=&#34;daemons&#34;&gt;Daemons&lt;/h3&gt;
&lt;h4 id=&#34;ergo&#34;&gt;&lt;a href=&#34;https://ergo.chat/&#34;&gt;Ergo&lt;/a&gt; - combining the features of an ircd, a services framework, and a bouncer&lt;/h4&gt;
&lt;p&gt;v2.14.0 released in June includes support for the &lt;code&gt;OAUTHBEARER&lt;/code&gt; SASL mechanism, allowing interoperation with Gamja and an OAuth2 provider as well as the &lt;code&gt;IRCV3BEARER&lt;/code&gt; SASL mechanism, allowing to accept OAuth2 or JWT bearer tokens.&lt;/p&gt;
&lt;h4 id=&#34;gossip&#34;&gt;&lt;a href=&#34;https://github.com/mitchr/gossip&#34;&gt;gossip&lt;/a&gt; - server written in Go&lt;/h4&gt;
&lt;p&gt;Trusted proxies can now be configured, &lt;code&gt;WHOIS&lt;/code&gt; implementation was made more complete and &lt;code&gt;STATUSMSG&lt;/code&gt; was implemented.&lt;/p&gt;
&lt;h4 id=&#34;inspircd&#34;&gt;&lt;a href=&#34;https://www.inspircd.org/&#34;&gt;InspIRCd&lt;/a&gt; - stable, high-performance and modular&lt;/h4&gt;
&lt;p&gt;Additions include a fingerprint cloak method, support for multiple hash algorithms for client fingerprints, passwords for opers being optional in case a TLS fingerprint or services account is preferred for security, support for non-web WebSocket connections and tools for converting UnrealIRCd databases to InspIRCd.&lt;/p&gt;
&lt;h4 id=&#34;ngircd&#34;&gt;&lt;a href=&#34;https://ngircd.barton.de/&#34;&gt;ngIRCd&lt;/a&gt; – lightweight IRC server&lt;/h4&gt;
&lt;p&gt;Version 27 was released after three years of development. SSL/TLS certificates on outgoing server-server links are now validated by default, a Dockerfile was added, support was added for the &lt;code&gt;sd_notify&lt;/code&gt; protocol of &lt;code&gt;systemd&lt;/code&gt;, an example filter file for Fail2Ban was added and IPv6 support is now autodetected by default.&lt;/p&gt;
&lt;h4 id=&#34;unrealircd&#34;&gt;&lt;a href=&#34;https://www.unrealircd.org/&#34;&gt;UnrealIRCd&lt;/a&gt; - the most widely deployed IRCd&lt;/h4&gt;
&lt;p&gt;Versions 6.1.5 and 6.1.6 were released with support for &lt;code&gt;draft/no-implicit-names&lt;/code&gt;, performance improvements and more flexibility in the programmatic &lt;a href=&#34;https://www.unrealircd.org/docs/Crule&#34;&gt;rule system&lt;/a&gt;. UnrealIRCd also &lt;a href=&#34;https://forums.unrealircd.org/viewtopic.php?t=9363&#34;&gt;celebrated its 25th birthday&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;bots&#34;&gt;Bots&lt;/h3&gt;
&lt;p&gt;This and the next section has been curated with programming language diversity in mind.&lt;/p&gt;
&lt;h4 id=&#34;eggdrop&#34;&gt;&lt;a href=&#34;https://eggheads.org/&#34;&gt;Eggdrop&lt;/a&gt; - the oldest bot still in active development (C/Tcl)&lt;/h4&gt;
&lt;p&gt;There is now a module allowing to use Python for scripting, with mostly the same API as Tcl. Support was added for &lt;code&gt;userhost-in-names&lt;/code&gt; and &lt;code&gt;standard-replies&lt;/code&gt; capabilities, the bot is now compatible with Tcl 9 and account tracking was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;pbot&#34;&gt;&lt;a href=&#34;https://github.com/pragma-/pbot/&#34;&gt;PBot&lt;/a&gt; – a pragmatic bot (Perl)&lt;/h4&gt;
&lt;p&gt;A Wordle game plugin was added and it is now possible to deploy the bot using Docker or Vagrant.&lt;/p&gt;
&lt;h4 id=&#34;sopel&#34;&gt;&lt;a href=&#34;https://sopel.chat/&#34;&gt;Sopel&lt;/a&gt; - lightweight, easy-to-use utility bot (Python)&lt;/h4&gt;
&lt;p&gt;Version 8.0.0 was released after two years of development.&lt;/p&gt;
&lt;h3 id=&#34;libraries-frameworks-and-utilities&#34;&gt;Libraries, frameworks and utilities&lt;/h3&gt;
&lt;h4 id=&#34;blur&#34;&gt;&lt;a href=&#34;https://github.com/mkroman/blur&#34;&gt;Blur&lt;/a&gt; - event-driven IRC-framework (Ruby)&lt;/h4&gt;
&lt;p&gt;After a two-year quiet period, work resumed with additions such as a command line interface, logging and URL handling.&lt;/p&gt;
&lt;h4 id=&#34;ibis&#34;&gt;&lt;a href=&#34;https://docs.imfreedom.org/ibis/&#34;&gt;Ibis&lt;/a&gt; - a &lt;a href=&#34;https://docs.gtk.org/gobject/&#34;&gt;GObject&lt;/a&gt; based library (C)&lt;/h4&gt;
&lt;p&gt;Ibis is a new library from Pidgin developers. It has no opinion about how messages are handled and is meant to be used for integration, providing the heavy lifting of things like parsing and serialization.&lt;/p&gt;
&lt;h4 id=&#34;irc-go&#34;&gt;&lt;a href=&#34;https://github.com/ergochat/irc-go&#34;&gt;irc-go&lt;/a&gt; - libraries to help with IRC development (Go)&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;SASL&lt;/code&gt; authentication code was made more robust and a &lt;code&gt;GetReplyTarget&lt;/code&gt; function was added.&lt;/p&gt;
&lt;h4 id=&#34;ircjournal&#34;&gt;&lt;a href=&#34;https://github.com/zopieux/ircjournal&#34;&gt;ircjournal&lt;/a&gt; - a lightweight, fast, standalone log viewer for the web with real-time log ingestion (Rust)&lt;/h4&gt;
&lt;p&gt;Development for this tool started in 2021. During this season it gained a Nix flake as a convenient deployment method.&lt;/p&gt;
&lt;h4 id=&#34;vinezombie&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~daemoness/vinezombie&#34;&gt;vinezombie&lt;/a&gt; - a modular client library (Rust)&lt;/h4&gt;
&lt;p&gt;Still early days for this library and lots of groundwork being laid in areas such as message handling and authentication.&lt;/p&gt;
&lt;h4 id=&#34;weitersager&#34;&gt;&lt;a href=&#34;https://homework.nwsnet.de/releases/1cda/&#34;&gt;Weitersager&lt;/a&gt; - receive messages via HTTP and show them on IRC (Python)&lt;/h4&gt;
&lt;p&gt;Even though this utility only received maintenance work during this season, I wanted to give it a shoutout for once.&lt;/p&gt;
&lt;h3 id=&#34;bridges&#34;&gt;Bridges&lt;/h3&gt;
&lt;h4 id=&#34;discordrc&#34;&gt;&lt;a href=&#34;https://discordrc.com/&#34;&gt;Discord Relay Chat&lt;/a&gt; - an IRC client using Discord as the frontend&lt;/h4&gt;
&lt;p&gt;User scripts can now be scheduled.&lt;/p&gt;
&lt;h4 id=&#34;heisenbridge&#34;&gt;&lt;a href=&#34;https://github.com/hifi/heisenbridge&#34;&gt;Heisenbridge&lt;/a&gt; - a bouncer-style Matrix IRC bridge&lt;/h4&gt;
&lt;p&gt;Multi-line messages can now get a line prefix to help some client scripts unwrap the messages and reacts can be disabled.&lt;/p&gt;
&lt;h4 id=&#34;irgramd&#34;&gt;&lt;a href=&#34;https://src.presi.org/darcs/irgramd&#34;&gt;irgramd&lt;/a&gt; - connect from an IRC client to Telegram as a regular user&lt;/h4&gt;
&lt;p&gt;Commands were added to forward messages and to upload files and media.&lt;/p&gt;
&lt;h4 id=&#34;localslackirc&#34;&gt;&lt;a href=&#34;https://codeberg.org/ltworf/localslackirc&#34;&gt;localslackirc&lt;/a&gt; - gateway for Slack, running on localhost for one user&lt;/h4&gt;
&lt;p&gt;The code was adapted to Slack&amp;rsquo;s API changes.&lt;/p&gt;
&lt;h4 id=&#34;matrix2051&#34;&gt;&lt;a href=&#34;https://github.com/progval/matrix2051&#34;&gt;Matrix2051&lt;/a&gt; - IRC server backed by Matrix&lt;/h4&gt;
&lt;p&gt;A Containerfile was added as a deployment option and compatibility with WeeChat was improved.&lt;/p&gt;
&lt;h4 id=&#34;reliable-discord&#34;&gt;&lt;a href=&#34;https://codeberg.org/mk-fg/reliable-discord-client-irc-daemon&#34;&gt;Reliable Discord-client IRC Daemon (rdircd)&lt;/a&gt; - personal discord-client to irc-server translation daemon&lt;/h4&gt;
&lt;p&gt;Image-emojis and gifv embeds are now handled and support was added for Operating System Command (OSC) 8, to provide hyperlinks for terminal IRC clients.&lt;/p&gt;
&lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt;
&lt;p&gt;Taking care of user accounts and channels among other things.&lt;/p&gt;
&lt;h4 id=&#34;anope&#34;&gt;&lt;a href=&#34;https://www.anope.org/&#34;&gt;Anope&lt;/a&gt; – highly modular set of services&lt;/h4&gt;
&lt;p&gt;Several releases of the 2.1 line were made with additions such as an &lt;code&gt;UNBANME&lt;/code&gt; privilege for users to unban themselves, the ability to use more than one fingerprint in an oper block, alternate command suggestions in response to invalid user commands, support for &lt;code&gt;draft/channel-context&lt;/code&gt; and &lt;code&gt;draft/reply&lt;/code&gt; tags, an Atheme database import feature, support for sending client tags on UnrealIRCd, support for the InspIRCd 1206 (v4) protocol, the ability to encrypt passwords with Argon2 or HMAC-SHA-2 algorithms, queueing for multi-line messages and an example &lt;code&gt;systemd&lt;/code&gt; unit file.&lt;/p&gt;
&lt;h4 id=&#34;atheme&#34;&gt;&lt;a href=&#34;https://atheme.github.io/&#34;&gt;Atheme&lt;/a&gt; - for large networks with high scalability requirements&lt;/h4&gt;
&lt;p&gt;Compatibility with UnrealIRCd was improved and channels can now be filtered by registered/unregistered status.&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
    <item>
      <title>IRC technology news from the second half of 2023</title>
      <link>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2023/</link>
      <pubDate>Sun, 14 Jan 2024 17:00:06 +0200</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2023/</guid>
      <description>&lt;p&gt;&lt;em&gt;🎵 So here it is, Merry IRCmas / Lots of coding getting done! 🎵&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Yes indeed, I went and read a bunch of changelogs and commits again to bring you some interesting bits from the world of IRC.&lt;/p&gt;
&lt;h3 id=&#34;protocol-specifications&#34;&gt;Protocol specifications&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/IRCv3.svg&#34;
    alt=&#34;IRCv3 logo&#34; width=&#34;80&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;Work-in-progress extensions &lt;a href=&#34;https://ircv3.net/specs/extensions/pre-away&#34;&gt;pre-away&lt;/a&gt; and &lt;a href=&#34;https://ircv3.net/specs/extensions/no-implicit-names&#34;&gt;no-implicit-names&lt;/a&gt; were added.&lt;/p&gt;
&lt;h3 id=&#34;documentation&#34;&gt;Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://modern.ircdocs.horse/&#34;&gt;Modern IRC Client Protocol&lt;/a&gt; docs received updates and clarifications related to client nickname syntax and &lt;code&gt;WHO&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;mobile-clients&#34;&gt;Mobile clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/lith.png&#34;
    alt=&#34;Lith screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Lith screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;goguma&#34;&gt;&lt;a href=&#34;https://sr.ht/~emersion/goguma/&#34;&gt;goguma&lt;/a&gt; - for mobile Linux and Android&lt;/h4&gt;
&lt;p&gt;Version 0.6.0 was released in December with support for the &lt;code&gt;draft/pre-away extension&lt;/code&gt; (to not toggle the away flag when synchronizing chat history in the background), geo URIs and sharing current geolocation and the commands &lt;code&gt;/join&lt;/code&gt;, &lt;code&gt;/kick&lt;/code&gt;, &lt;code&gt;/mode&lt;/code&gt; and &lt;code&gt;/quote&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;irccloud&#34;&gt;&lt;a href=&#34;https://www.irccloud.com/&#34;&gt;IRCCloud&lt;/a&gt; - Connect to any IRC server out there, and even Slack workspaces&lt;/h4&gt;
&lt;p&gt;Both the Android and iOS apps got support for geo URIs.&lt;/p&gt;
&lt;h4 id=&#34;lith&#34;&gt;&lt;a href=&#34;https://lith.app/&#34;&gt;Lith&lt;/a&gt; - multiplatform WeeChat Relay client&lt;/h4&gt;
&lt;p&gt;Lith is an ambitious project aiming to provide a &lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; UI for all major desktop and mobile operating systems with the help of the Qt framework. Development started in 2016 and now there is support for iOS and iPadOS, Linux and experimentally for Android, Windows and macOS. It even works as a WebAssembly app, running locally in the browser without needing a web server.&lt;/p&gt;
&lt;h3 id=&#34;web-clients&#34;&gt;Web clients&lt;/h3&gt;
&lt;p&gt;Many of these include support for persistent history, so there is some overlap with the bouncer category.&lt;/p&gt;
&lt;h4 id=&#34;convos&#34;&gt;&lt;a href=&#34;https://convos.chat/&#34;&gt;Convos&lt;/a&gt; - Mojolicious in the backend and Svelte in the frontend&lt;/h4&gt;
&lt;p&gt;The main menu now has collapsible sections, where you can hide servers and user settings. Conversation and server settings were moved into the participant list. These are illustrated in &lt;a href=&#34;https://convos.chat/blog/2023/10/30/released-eight-oh&#34;&gt;a blog post&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;gamja&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/gamja&#34;&gt;gamja&lt;/a&gt; – a bare-bones web client&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;MONITOR&lt;/code&gt; online/offline notifications are now shown in user buffers.&lt;/p&gt;
&lt;h4 id=&#34;glowing-bear&#34;&gt;&lt;a href=&#34;https://www.glowing-bear.org/&#34;&gt;Glowing Bear&lt;/a&gt; - WeeChat web frontend&lt;/h4&gt;
&lt;p&gt;Support was added for colours in buffer short name.&lt;/p&gt;
&lt;h4 id=&#34;irc-hybrid-client&#34;&gt;&lt;a href=&#34;https://github.com/cotarr/irc-hybrid-client&#34;&gt;irc-hybrid-client&lt;/a&gt; – Single user hybrid client using JavaScript frontend and Node.js/Express backend&lt;/h4&gt;
&lt;p&gt;Additions include light and dark themes, new server list, new server definition editor panel, new status bar, new dropdown navigation menu and keyboard hotkeys. The code was reorganised into web components.&lt;/p&gt;
&lt;h4 id=&#34;kiwiirc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwiirc&#34;&gt;KiwiIRC&lt;/a&gt; – uses static files and supports theming and plugins (JavaScript)&lt;/h4&gt;
&lt;p&gt;Bracket matching for URLs and channel names in messages was improved, &lt;code&gt;WHOX&lt;/code&gt; flags are now used to indicate user type and many UI improvements were made, including a big overhaul to the nickname list.&lt;/p&gt;
&lt;h4 id=&#34;the-lounge&#34;&gt;&lt;a href=&#34;https://thelounge.chat/&#34;&gt;The Lounge&lt;/a&gt; - modern web client utilising Node.js&lt;/h4&gt;
&lt;p&gt;A storage cleaner with different message retaining policies was added.&lt;/p&gt;
&lt;h3 id=&#34;desktop-clients&#34;&gt;Desktop clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/polari.png&#34;
    alt=&#34;Polari screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Polari screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;adiirc&#34;&gt;&lt;a href=&#34;https://adiirc.com/&#34;&gt;AdiIRC&lt;/a&gt; – freeware client for Windows&lt;/h4&gt;
&lt;p&gt;Version 4.4 was released with colour options for Monitor Panel tabs, dark mode support for all controls without a colour option and options to enable/disable IRCv3 server-time and Paste &amp;amp; Submit item in the Editbox menu.&lt;/p&gt;
&lt;h4 id=&#34;circe&#34;&gt;&lt;a href=&#34;https://github.com/jorgenschaefer/circe&#34;&gt;Circe&lt;/a&gt; - a client for IRC in Emacs&lt;/h4&gt;
&lt;p&gt;Passwords are now validated for expected type.&lt;/p&gt;
&lt;h4 id=&#34;erc&#34;&gt;&lt;a href=&#34;https://www.gnu.org/savannah-checkouts/gnu/emacs/erc.html&#34;&gt;ERC&lt;/a&gt; - an Emacs IRC client&lt;/h4&gt;
&lt;p&gt;Improvements and additions include a configurable indicator for remembering position in buffers, a new module for dynamically wrapping messages to window width, a new module for nickname highlighting, a smarter, more responsive prompt, revised buffer-display handling, smarter reconnect handling for users on the move and in-buffer status messages.&lt;/p&gt;
&lt;h4 id=&#34;halloy&#34;&gt;&lt;a href=&#34;https://github.com/squidowl/halloy&#34;&gt;Halloy&lt;/a&gt; – cross-platform client written in Rust&lt;/h4&gt;
&lt;p&gt;This new client grew support for many more IRCv3 features and basic functionality such as nickname completions and buffer history navigation.&lt;/p&gt;
&lt;h4 id=&#34;hexchat&#34;&gt;&lt;a href=&#34;https://hexchat.github.io/&#34;&gt;HexChat&lt;/a&gt; - client for Windows and UNIX-like operating systems&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;a href=&#34;https://en.wikipedia.org/wiki/Salted_Challenge_Response_Authentication_Mechanism&#34;&gt;Salted Challenge Response Authentication Mechanism&lt;/a&gt; (SCRAM).&lt;/p&gt;
&lt;h4 id=&#34;kvirc&#34;&gt;&lt;a href=&#34;https://www.kvirc.net/&#34;&gt;KVIrc&lt;/a&gt; – client built with Qt&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;UTF8ONLY&lt;/code&gt; extension, user and channel modes now work with Solanum ircd, notifications now work under KDE and logs can be exported in batch. The application is also now compatible with Qt6 and KDE Frameworks 6. You can enjoy all of these and more in &lt;a href=&#34;https://github.com/kvirc/KVIrc/releases/tag/5.2.0&#34;&gt;version 5.2.0&lt;/a&gt;, which was released today after 5 years of development!&lt;/p&gt;
&lt;h4 id=&#34;konversation&#34;&gt;&lt;a href=&#34;https://konversation.kde.org/&#34;&gt;Konversation&lt;/a&gt; – KDE’s IRC client for Windows, Linux and BSDs&lt;/h4&gt;
&lt;p&gt;Problems with capability negotiation and handling channel names and topics were fixed.&lt;/p&gt;
&lt;h4 id=&#34;mirc&#34;&gt;&lt;a href=&#34;https://www.mirc.com/&#34;&gt;mIRC&lt;/a&gt; – 95 ‘til infinity (Windows-only)&lt;/h4&gt;
&lt;p&gt;Additions and improvements in versions 7.74 and 7.75 include a server option to connect/minimize on startup, an option to clear history when mIRC is closed, support for IRCv3 &lt;code&gt;extended-monitor&lt;/code&gt; tag, &lt;code&gt;typing&lt;/code&gt; client tag and typing notifications and loading of custom fonts on startup from &amp;ldquo;fonts&amp;rdquo; folder.&lt;/p&gt;
&lt;h4 id=&#34;pidgin&#34;&gt;&lt;a href=&#34;https://pidgin.im/&#34;&gt;Pidgin&lt;/a&gt; - a multi-network/protocol chat application&lt;/h4&gt;
&lt;p&gt;The new IRCv3 plugin gained improvements including more robust SASL authentication, a status window, &lt;code&gt;server-time&lt;/code&gt; capability and basic &lt;code&gt;CTCP&lt;/code&gt; support.&lt;/p&gt;
&lt;h4 id=&#34;polari&#34;&gt;&lt;a href=&#34;https://wiki.gnome.org/Apps/Polari&#34;&gt;Polari&lt;/a&gt; - GNOME’s client&lt;/h4&gt;
&lt;p&gt;The UI was adapted to latest GNOME design patterns and visual design was improved.&lt;/p&gt;
&lt;h4 id=&#34;srain&#34;&gt;&lt;a href=&#34;https://srain.im/&#34;&gt;Srain&lt;/a&gt; – modern client built with GTK&lt;/h4&gt;
&lt;p&gt;An option was added to automatically scroll to new messages when they are received.&lt;/p&gt;
&lt;h3 id=&#34;terminal-clients&#34;&gt;Terminal clients&lt;/h3&gt;
&lt;h4 id=&#34;accirc&#34;&gt;&lt;a href=&#34;https://github.com/neutrak/accirc&#34;&gt;accirc&lt;/a&gt; - accidental irc is an ncurses-based irc client&lt;/h4&gt;
&lt;p&gt;Work on this client started in 2014. It now received a hide_user_mode_changes option to suppress user mode spam and better compatibility with servers using unusual message formats.&lt;/p&gt;
&lt;h4 id=&#34;girc-lisp&#34;&gt;&lt;a href=&#34;https://github.com/McParen/girc&#34;&gt;girc&lt;/a&gt; - client written in Common Lisp&lt;/h4&gt;
&lt;p&gt;An optional side window for displaying the buffer list was added and a server can now be passed from the command line.&lt;/p&gt;
&lt;h4 id=&#34;glirc&#34;&gt;&lt;a href=&#34;https://github.com/glguy/irc-core&#34;&gt;glirc&lt;/a&gt; - Haskell library and console client&lt;/h4&gt;
&lt;p&gt;A &lt;code&gt;/list&lt;/code&gt; command was added for viewing the list of public channels on the server, a &lt;code&gt;/who&lt;/code&gt; view was added, desktop notifications are now supported, the &lt;code&gt;/grep&lt;/code&gt; (filter using regular expression) and &lt;code&gt;/url&lt;/code&gt; (view and open long URLs) commands can now be used in more views.&lt;/p&gt;
&lt;h4 id=&#34;irssi&#34;&gt;&lt;a href=&#34;https://irssi.org/&#34;&gt;Irssi&lt;/a&gt; - your text mode chatting application since 1999&lt;/h4&gt;
&lt;p&gt;Window history now supports bash-like editing and options were added to connect without TLS (&lt;code&gt;-notls&lt;/code&gt;) and to not verify the TLS certificate of the server (&lt;code&gt;-notls_verify&lt;/code&gt;).&lt;/p&gt;
&lt;h4 id=&#34;senpai&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~delthas/senpai/&#34;&gt;senpai&lt;/a&gt; - TUI client made for bouncers&lt;/h4&gt;
&lt;p&gt;Desktop notifications upon nickname highlight are now supported, a config option &amp;ldquo;transient&amp;rdquo; can be used for ephemeral, no disk runs, nickname can now be configured as a command line argument, autocomplete now works with emojis, &lt;code&gt;/LIST&lt;/code&gt;, &lt;code&gt;/AWAY&lt;/code&gt; and &lt;code&gt;/BACK&lt;/code&gt; commands were added, geo: link parsing was added and auto-completion suggestions now appear in a popup.&lt;/p&gt;
&lt;h4 id=&#34;swirc&#34;&gt;&lt;a href=&#34;https://www.nifty-networks.net/swirc/&#34;&gt;Swirc&lt;/a&gt; - lightweight ICB and IRC client&lt;/h4&gt;
&lt;p&gt;Additions include expanded support for tab completion in commands, support for many numeric replies, handling of znc messages, support for &lt;code&gt;BATCH&lt;/code&gt; event (with types &lt;code&gt;chathistory&lt;/code&gt;, &lt;code&gt;netjoin&lt;/code&gt;, &lt;code&gt;netsplit&lt;/code&gt; and &lt;code&gt;znc.in/playback&lt;/code&gt;), better detection of server Wallops and new commands &lt;code&gt;/admin&lt;/code&gt;, &lt;code&gt;/dcc&lt;/code&gt;, &lt;code&gt;/die&lt;/code&gt;, &lt;code&gt;/gline&lt;/code&gt;, &lt;code&gt;/info&lt;/code&gt;, &lt;code&gt;/ison&lt;/code&gt;, &lt;code&gt;/kline&lt;/code&gt;, &lt;code&gt;/rehash&lt;/code&gt;, &lt;code&gt;/restart&lt;/code&gt;, &lt;code&gt;/servstats&lt;/code&gt; and &lt;code&gt;/wallops&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;tiny&#34;&gt;&lt;a href=&#34;https://github.com/osa1/tiny&#34;&gt;tiny&lt;/a&gt; – client written in Rust&lt;/h4&gt;
&lt;p&gt;Support was added for italic and strikethrough text attributes and configurable key bindings for running commands.&lt;/p&gt;
&lt;h4 id=&#34;weechat&#34;&gt;&lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; - the extensible chat client&lt;/h4&gt;
&lt;p&gt;Alongside a myriad of other improvements and additions, configuration file handling was made more helpful in case of version mismatch, a new command &lt;code&gt;/sys&lt;/code&gt; was added to show resource limits/usage and suspend WeeChat process, the &lt;code&gt;/names&lt;/code&gt; command was enriched and the output of &lt;code&gt;/list&lt;/code&gt; is now directed to a buffer for convenient further filtering.&lt;/p&gt;
&lt;h3 id=&#34;bouncers&#34;&gt;Bouncers&lt;/h3&gt;
&lt;p&gt;They stay online, so you don’t have to!&lt;/p&gt;
&lt;h4 id=&#34;pounce&#34;&gt;&lt;a href=&#34;https://git.causal.agency/pounce/about/&#34;&gt;pounce&lt;/a&gt; - multi-client, TLS-only IRC bouncer. Uses server-time extension to communicate with clients&lt;/h4&gt;
&lt;p&gt;Compatibility with UnrealIRCd and Textual was improved and support was added for &lt;code&gt;extended-monitor&lt;/code&gt; and &lt;code&gt;draft/read-marker&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;soju&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/soju&#34;&gt;soju&lt;/a&gt; – multi-user bouncer&lt;/h4&gt;
&lt;p&gt;Version 0.7.0 was released in November with support for the &lt;code&gt;draft/pre-away&lt;/code&gt; extension allowing short-lived and background clients to not toggle the auto-away status, &lt;code&gt;draft/no-implicit-names&lt;/code&gt; allowing clients with low bandwidth to connect faster and &lt;code&gt;STATUSMSG&lt;/code&gt;. The database migration script was also made faster.&lt;/p&gt;
&lt;h4 id=&#34;znc&#34;&gt;&lt;a href=&#34;https://wiki.znc.in/ZNC&#34;&gt;ZNC&lt;/a&gt; - an advanced bouncer&lt;/h4&gt;
&lt;p&gt;The account name for identified users will now be added to &amp;ldquo;Joins&amp;rdquo; lines in logs generated by the log module and password hashes were updated from SHA-256 to Argon2id.&lt;/p&gt;
&lt;h3 id=&#34;daemons&#34;&gt;Daemons&lt;/h3&gt;
&lt;h4 id=&#34;ergo&#34;&gt;&lt;a href=&#34;https://ergo.chat/&#34;&gt;Ergo&lt;/a&gt; - combining the features of an ircd, a services framework, and a bouncer&lt;/h4&gt;
&lt;p&gt;A channel autojoin feature and support for &lt;code&gt;draft/no-implicit-names&lt;/code&gt; were added and are found in v2.12.0 released in October.&lt;/p&gt;
&lt;h4 id=&#34;gossip&#34;&gt;&lt;a href=&#34;https://github.com/mitchr/gossip&#34;&gt;gossip&lt;/a&gt; - server written in Go&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;extended-monitor&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;inspircd&#34;&gt;&lt;a href=&#34;https://www.inspircd.org/&#34;&gt;InspIRCd&lt;/a&gt; - stable, high-performance and modular&lt;/h4&gt;
&lt;p&gt;Additions include an example post-deploy hook script for use with CertBot, Dehydrated, or other ACME SSL (TLS) renewal tools, support for rechecking if a user is in a DNS blacklist and for shunning blacklisted users, applying SVSHOLDs (nicknames reserved by services) to already existing users, options for hiding small channels from &lt;code&gt;/LIST&lt;/code&gt; past the securelist wait time, hiding the messages of silenced users of blocking, including the setter&amp;rsquo;s full mask in list modes and disabling &lt;code&gt;/LIST&lt;/code&gt; completely for unregistered users.&lt;/p&gt;
&lt;h4 id=&#34;miniircd&#34;&gt;&lt;a href=&#34;https://github.com/jrosdahl/miniircd&#34;&gt;miniircd&lt;/a&gt; - a small and limited server with no configuration required&lt;/h4&gt;
&lt;p&gt;Version 2.3 was released with capability negotiation support.&lt;/p&gt;
&lt;h4 id=&#34;ngircd&#34;&gt;&lt;a href=&#34;https://ngircd.barton.de/&#34;&gt;ngIRCd&lt;/a&gt; – lightweight IRC server&lt;/h4&gt;
&lt;p&gt;An autojoin option was added to force all users to join certain channels on connect.&lt;/p&gt;
&lt;h4 id=&#34;solanum&#34;&gt;&lt;a href=&#34;https://solanum.chat/&#34;&gt;Solanum&lt;/a&gt; - an IRCd for unified networks&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;ACCOUNTEXTBAN&lt;/code&gt; ISUPPORT token was added to support the &lt;a href=&#34;https://github.com/ircv3/ircv3-specifications/pull/464&#34;&gt;draft spec&lt;/a&gt; and the &lt;code&gt;NOTICE&lt;/code&gt; for invites was made optional.&lt;/p&gt;
&lt;h4 id=&#34;unrealircd&#34;&gt;&lt;a href=&#34;https://www.unrealircd.org/&#34;&gt;UnrealIRCd&lt;/a&gt; - the most widely deployed IRCd&lt;/h4&gt;
&lt;p&gt;Version 6.1.2 released in October and 6.1.3 in December focus on countermeasures against large scale spam/drones. UnrealIRCd now maintains API services &lt;a href=&#34;https://www.unrealircd.org/docs/Central_Blocklist&#34;&gt;Central Blocklist&lt;/a&gt;, &lt;a href=&#34;https://www.unrealircd.org/docs/Central_Spamfilter&#34;&gt;Central Spamfilter&lt;/a&gt; and &lt;a href=&#34;https://www.unrealircd.org/docs/Central_spamreport&#34;&gt;Central Spamreport&lt;/a&gt; in order to provide a more sophisticated way to battle spam compared to traditional DNS blacklists. Also, support for &lt;code&gt;draft/no-implicit-names&lt;/code&gt; was added.&lt;/p&gt;
&lt;h3 id=&#34;bots&#34;&gt;Bots&lt;/h3&gt;
&lt;p&gt;This and the next section has been curated with programming language diversity in mind.&lt;/p&gt;
&lt;h4 id=&#34;cbot&#34;&gt;&lt;a href=&#34;https://github.com/brenns10/cbot&#34;&gt;cbot&lt;/a&gt; - bot with features implemented as dynamically loaded plugins (C)&lt;/h4&gt;
&lt;p&gt;The trivia plugin gained new features.&lt;/p&gt;
&lt;h4 id=&#34;codybot&#34;&gt;&lt;a href=&#34;https://github.com/esselfe/codybot&#34;&gt;Codybot&lt;/a&gt; – a Linux bot with C compilation and shell access (C)&lt;/h4&gt;
&lt;p&gt;An !astro command was added to retrieve Sun and Moon rise and set times, plus moon phase and illumination.&lt;/p&gt;
&lt;h4 id=&#34;eggdrop&#34;&gt;&lt;a href=&#34;https://eggheads.org/&#34;&gt;Eggdrop&lt;/a&gt; - the oldest bot still in active development (C/Tcl)&lt;/h4&gt;
&lt;p&gt;An &lt;a href=&#34;https://www.eggheads.org/2023/07/09/beta-autoscripts-are-here/&#34;&gt;autoscripts&lt;/a&gt; feature was added to greatly simplify managing and working with scripts and there is now a got-chanlist event bind type.&lt;/p&gt;
&lt;h4 id=&#34;kameloso&#34;&gt;&lt;a href=&#34;https://github.com/zorael/kameloso&#34;&gt;kameloso&lt;/a&gt; - IRC and Twitch bot (D)&lt;/h4&gt;
&lt;p&gt;Stopwatches now persist across connections and across executions of the program, the Pipeline plugin was rewritten to do non-blocking reads, throttling/scheduling of outgoing messages was made more precise and an IRCBot.collectChannels() function was added for returning unique channel names, gathered from all currently
instantiated plugins.&lt;/p&gt;
&lt;h4 id=&#34;limnoria&#34;&gt;&lt;a href=&#34;https://limnoria.net/&#34;&gt;Limnoria&lt;/a&gt; - robust, full-featured, and user/programmer-friendly bot (Python)&lt;/h4&gt;
&lt;p&gt;Support was added for RSS feed attributes in template string, syntax error messages were made more helpful, a command was added to manually initiate SASL, channel counts and modes are now reported in status, the Seen plugin now shows when the target is currently in the channel and the Geography plugin now has support for OpenStreetMap node ids.&lt;/p&gt;
&lt;h4 id=&#34;nibblrjr&#34;&gt;&lt;a href=&#34;https://nibblr.pw/&#34;&gt;Nibblrjr&lt;/a&gt; - bot framework for creating custom behaviour dynamically (Node.js)&lt;/h4&gt;
&lt;p&gt;The fliptext command for flipping text upside down was improved, more unit conversions were added and a spoke command was added to find out when a user last said something.&lt;/p&gt;
&lt;h4 id=&#34;pbot&#34;&gt;&lt;a href=&#34;https://github.com/pragma-/pbot/&#34;&gt;PBot&lt;/a&gt; – a pragmatic bot (Perl)&lt;/h4&gt;
&lt;p&gt;ActionTrigger plugin now handles &lt;code&gt;QUIT&lt;/code&gt; triggers per-channel and ChanOp command groups multiple unbans/unmutes together into one command.&lt;/p&gt;
&lt;h4 id=&#34;sopel&#34;&gt;&lt;a href=&#34;https://sopel.chat/&#34;&gt;Sopel&lt;/a&gt; - lightweight, easy-to-use utility bot (Python)&lt;/h4&gt;
&lt;p&gt;Many Sopel plugins were extracted into their own repositories and released as standalone plugins. The built-in dice command received many improvements.&lt;/p&gt;
&lt;h3 id=&#34;libraries-frameworks-and-utilities&#34;&gt;Libraries, frameworks and utilities&lt;/h3&gt;
&lt;h4 id=&#34;birchwood&#34;&gt;&lt;a href=&#34;https://github.com/deavmi/birchwood&#34;&gt;birchwood&lt;/a&gt; - a sane IRC framework (D)&lt;/h4&gt;
&lt;p&gt;More foundational work went into this new framework.&lt;/p&gt;
&lt;h4 id=&#34;deno-irc&#34;&gt;&lt;a href=&#34;https://github.com/jeromeludmann/deno-irc&#34;&gt;Deno-irc&lt;/a&gt; - client protocol module for Deno (JavaScript)&lt;/h4&gt;
&lt;p&gt;A flood protection feature was added and SASL registration was introduced alongside separate account and server passwords.&lt;/p&gt;
&lt;h4 id=&#34;hii&#34;&gt;&lt;a href=&#34;https://github.com/nmeum/hii&#34;&gt;hii&lt;/a&gt; – a file-based client inspired by ii&lt;/h4&gt;
&lt;p&gt;Version 1.1.4 was released with improved displaying of messages thanks to &lt;code&gt;echo-message&lt;/code&gt; capability and sorting of nicknames in descending order by last activity, improving tab completion.&lt;/p&gt;
&lt;h4 id=&#34;jaraco-irc&#34;&gt;&lt;a href=&#34;https://github.com/jaraco/irc&#34;&gt;irc&lt;/a&gt; – a full-featured library (Python)&lt;/h4&gt;
&lt;p&gt;Support was added for SASL PLAIN authentication and parsing of message tags was fixed.&lt;/p&gt;
&lt;h4 id=&#34;irc-framework&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/irc-framework&#34;&gt;irc-framework&lt;/a&gt; – for bots and full clients (Node.js)&lt;/h4&gt;
&lt;p&gt;Handlers are now allowed to get access to the username from RPL_WHOISACTUALLY, improving compatibility with the upcoming major release of InspIRCd.&lt;/p&gt;
&lt;h4 id=&#34;cminor-irc-client&#34;&gt;&lt;a href=&#34;https://github.com/stwalkerster/ircclient&#34;&gt;ircclient&lt;/a&gt; (C#)&lt;/h4&gt;
&lt;p&gt;Compatibility with InspIRCd was fixed.&lt;/p&gt;
&lt;h4 id=&#34;kitteh-irc-client-library&#34;&gt;&lt;a href=&#34;https://kitteh.org/&#34;&gt;Kitteh IRC Client Library&lt;/a&gt; (Java)&lt;/h4&gt;
&lt;p&gt;Support was added for bot mode and &lt;code&gt;extended-monitor&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;lirc&#34;&gt;&lt;a href=&#34;https://github.com/InterLinked1/lirc&#34;&gt;lirc&lt;/a&gt; - a lightweight client library (C)&lt;/h4&gt;
&lt;p&gt;This new library was made public in January 2023 and is being fleshed out.&lt;/p&gt;
&lt;h4 id=&#34;superseriousstats&#34;&gt;&lt;a href=&#34;https://sss.dutnie.nl/&#34;&gt;superseriousstats&lt;/a&gt; - a fast and efficient program to create statistics out of various types of IRC chat logs (PHP)&lt;/h4&gt;
&lt;p&gt;Empty slaps and actions now count towards the stats.&lt;/p&gt;
&lt;h4 id=&#34;vinezombie&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~daemoness/vinezombie&#34;&gt;vinezombie&lt;/a&gt; - a modular client library (Rust)&lt;/h4&gt;
&lt;p&gt;This newish library received more fundamental development and an initial v0.1.0 was released.&lt;/p&gt;
&lt;h3 id=&#34;bridges&#34;&gt;Bridges&lt;/h3&gt;
&lt;h4 id=&#34;discordrc&#34;&gt;&lt;a href=&#34;https://discordrc.com/&#34;&gt;Discord Relay Chat&lt;/a&gt; - an IRC client using Discord as the frontend&lt;/h4&gt;
&lt;p&gt;Installation and setup instructions were added, user scripting was implemented and embedding/crawling on URLs is now optional.&lt;/p&gt;
&lt;h4 id=&#34;heisenbridge&#34;&gt;&lt;a href=&#34;https://github.com/hifi/heisenbridge&#34;&gt;Heisenbridge&lt;/a&gt; - a bouncer-style Matrix IRC bridge&lt;/h4&gt;
&lt;p&gt;Media path for reverse proxies was made configurable, TLS cipher lists can now be specified per server and support was added for &lt;code&gt;away-notify&lt;/code&gt; and non-numeric sasl events.&lt;/p&gt;
&lt;h4 id=&#34;irgramd&#34;&gt;&lt;a href=&#34;https://src.presi.org/darcs/irgramd&#34;&gt;irgramd&lt;/a&gt; - connect from an IRC client to Telegram as a regular user&lt;/h4&gt;
&lt;p&gt;Forked from an earlier project in 2020, this gateway was never featured here before. During the second half of 2023, it received docs for installation and configuration, a delete command for deleting messages and support for showing polls and for message pinning.&lt;/p&gt;
&lt;h4 id=&#34;localslackirc&#34;&gt;&lt;a href=&#34;https://github.com/ltworf/localslackirc&#34;&gt;localslackirc&lt;/a&gt; - gateway for Slack, running on localhost for one user&lt;/h4&gt;
&lt;p&gt;Once leaving a thread, you now won&amp;rsquo;t get autojoined with every new message, leaving a channel but not a thread leaves the threads working, you can now automatically rejoin channels/threads when mentioned directly, there are now commands to send files and messages from the shell and an &lt;code&gt;/autoreact&lt;/code&gt; command was added to automatically put reactions to messages alongside the commands &lt;code&gt;/dropautoreact&lt;/code&gt;, &lt;code&gt;/listautoreact&lt;/code&gt;, &lt;code&gt;/listannoy&lt;/code&gt; and &lt;code&gt;/dropannoy&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;matrix2051&#34;&gt;&lt;a href=&#34;https://github.com/progval/matrix2051&#34;&gt;Matrix2051&lt;/a&gt; - IRC server backed by Matrix&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;draft/no-implicit-names&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;reliable-discord&#34;&gt;&lt;a href=&#34;https://codeberg.org/mk-fg/reliable-discord-client-irc-daemon&#34;&gt;Reliable Discord-client IRC Daemon (rdircd)&lt;/a&gt; - personal discord-client to irc-server translation daemon&lt;/h4&gt;
&lt;p&gt;Example files were created for Docker and systemd, choice of nicknames was made more flexible and an ability was added to find/query usernames alongside many other improvements.&lt;/p&gt;
&lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt;
&lt;p&gt;Taking care of user accounts and channels among other things.&lt;/p&gt;
&lt;h4 id=&#34;anope&#34;&gt;&lt;a href=&#34;https://www.anope.org/&#34;&gt;Anope&lt;/a&gt; – highly modular set of services&lt;/h4&gt;
&lt;p&gt;Version 2.0.14 was released in August and 2.1.0 in November with additions such as support for sqlining channels on UnrealIRCd, nickserv:minpasslen for configuring the minimum password length, support for access list entry descriptions, linking over a UNIX socket, server-initiated logins and logouts on UnrealIRCd, server-initiated logouts on InspIRCd and ANONYMOUS SASL mechanism. Users are now allowed to opt-out of being added to channel access lists, the codebase was modernised to C++17 standard and the build system now uses up-to-date CMake.&lt;/p&gt;
&lt;h4 id=&#34;atheme&#34;&gt;&lt;a href=&#34;https://atheme.github.io/&#34;&gt;Atheme&lt;/a&gt; - for large networks with high scalability requirements&lt;/h4&gt;
&lt;p&gt;Chanserv module loading was made more robust and its error messages were improved.&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
    <item>
      <title>IRC technology news from the first half of 2023</title>
      <link>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_first_half_of_2023/</link>
      <pubDate>Fri, 14 Jul 2023 19:00:06 +0200</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_first_half_of_2023/</guid>
      <description>&lt;p&gt;After reading through some hundreds of release notes and commit logs again, the conclusion is clear: IRC keeps on trucking. It is especially nice to see new desktop applications being created. I&amp;rsquo;m not sure what to make of it, but there are now three projects written in the &lt;a href=&#34;https://en.wikipedia.org/wiki/D_(programming_language)&#34;&gt;D language&lt;/a&gt; among the libraries and frameworks.&lt;/p&gt;
&lt;p&gt;As always, I pick the projects based on what makes sense to me. If you would like to see your project in this list, make sure you have a good readme file and write informative subject lines for your commit messages or better yet, put together release notes.&lt;/p&gt;
&lt;h3 id=&#34;protocol-specifications&#34;&gt;Protocol specifications&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/IRCv3.svg&#34;
    alt=&#34;IRCv3 logo&#34; width=&#34;80&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;A capability was added for sending arbitrary &lt;a href=&#34;https://ircv3.net/specs/extensions/standard-replies#capabilities&#34;&gt;standard replies&lt;/a&gt; and a &lt;code&gt;MSGREFTYPES&lt;/code&gt; ISUPPORT token was added to the &lt;a href=&#34;https://ircv3.net/specs/extensions/chathistory#isupport-tokens&#34;&gt;chathistory spec&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;documentation&#34;&gt;Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://modern.ircdocs.horse/&#34;&gt;Modern IRC Client Protocol&lt;/a&gt; docs received updates and clarifications related to replies, &lt;code&gt;MODE&lt;/code&gt; and nicknames.&lt;/p&gt;
&lt;h3 id=&#34;mobile-clients&#34;&gt;Mobile clients&lt;/h3&gt;
&lt;h4 id=&#34;goguma&#34;&gt;&lt;a href=&#34;https://sr.ht/~emersion/goguma/&#34;&gt;goguma&lt;/a&gt; - for mobile Linux and Android&lt;/h4&gt;
&lt;p&gt;There is now support for replies via the reply client tag, a gallery view for images and the app scrolls to the unread indicator when a conversation is opened. Initial iOS support was added.&lt;/p&gt;
&lt;h4 id=&#34;irccloud&#34;&gt;&lt;a href=&#34;https://www.irccloud.com/&#34;&gt;IRCCloud&lt;/a&gt; - Connect to any IRC server out there, and even Slack workspaces&lt;/h4&gt;
&lt;p&gt;Both the Android and iOS apps received improvements to the file upload dialog and text snippets.&lt;/p&gt;
&lt;h4 id=&#34;revolution-irc&#34;&gt;&lt;a href=&#34;https://github.com/MCMrARM/revolution-irc&#34;&gt;Revolution IRC&lt;/a&gt; – Android client with Material design&lt;/h4&gt;
&lt;p&gt;After a two-year hiatus, a release was made with maintenace updates and bug fixes.&lt;/p&gt;
&lt;h3 id=&#34;web-clients&#34;&gt;Web clients&lt;/h3&gt;
&lt;p&gt;Many of these include support for persistent history, so there is some overlap with the bouncer category.&lt;/p&gt;
&lt;h4 id=&#34;convos&#34;&gt;&lt;a href=&#34;https://convos.chat/&#34;&gt;Convos&lt;/a&gt; - Mojolicious in the backend and Svelte in the frontend&lt;/h4&gt;
&lt;p&gt;System emojis are now used instead of a third party service&lt;/p&gt;
&lt;h4 id=&#34;gamja&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/gamja&#34;&gt;gamja&lt;/a&gt; – a bare-bones web client&lt;/h4&gt;
&lt;p&gt;A keyboard-driven fast tab switcher was added.&lt;/p&gt;
&lt;h4 id=&#34;irc-hybrid-client&#34;&gt;&lt;a href=&#34;https://github.com/cotarr/irc-hybrid-client&#34;&gt;irc-hybrid-client&lt;/a&gt; – Single user hybrid client using JavaScript frontend and Node.js/Express backend&lt;/h4&gt;
&lt;p&gt;Additions include ability to use custom notification sounds, log file rotation and ability to manage web server configuration using UNIX environment variables. The server setup was made easier.&lt;/p&gt;
&lt;h4 id=&#34;kiwiirc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwiirc&#34;&gt;KiwiIRC&lt;/a&gt; – uses static files and supports theming and plugins (JavaScript)&lt;/h4&gt;
&lt;p&gt;An option was introduced for not adding hidden messages to the list, support for emojis was reworked, country is now displayed in whois info, channel topic is now shown in buffer header, chathistory implementation was updated and the ability was added for inviting users to a channel via the UI.&lt;/p&gt;
&lt;h4 id=&#34;the-lounge&#34;&gt;&lt;a href=&#34;https://thelounge.chat/&#34;&gt;The Lounge&lt;/a&gt; - modern web client utilising Node.js&lt;/h4&gt;
&lt;p&gt;The application was rewritten in TypeScript / Vue 3 framework.&lt;/p&gt;
&lt;h3 id=&#34;desktop-clients&#34;&gt;Desktop clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/halloy.png&#34;
    alt=&#34;Halloy screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Halloy screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;adiirc&#34;&gt;&lt;a href=&#34;https://adiirc.com/&#34;&gt;AdiIRC&lt;/a&gt; – freeware client for Windows&lt;/h4&gt;
&lt;p&gt;Version 4.3 was released with new commands, identifiers and events for making scripted webirc frontends, ability to dock any custom window (including picture windows) as Monitor Panels, a new sound API, a visual indicator on tabs with matching text when searching the Options dialog and URL recognition for gemini://, ws:// and wss://.&lt;/p&gt;
&lt;h4 id=&#34;erc&#34;&gt;&lt;a href=&#34;https://www.gnu.org/savannah-checkouts/gnu/emacs/erc.html&#34;&gt;ERC&lt;/a&gt; - an Emacs IRC client&lt;/h4&gt;
&lt;p&gt;Improvements and additions include better compatibility with soju bouncer, better user experience when connecting interactively, smarter reconnect handling via &lt;code&gt;erc-server-reconnect-function&lt;/code&gt; option and more control over the layout of messages via the &lt;code&gt;fill&lt;/code&gt; module.&lt;/p&gt;
&lt;h4 id=&#34;halloy&#34;&gt;&lt;a href=&#34;https://github.com/squidowl/halloy&#34;&gt;Halloy&lt;/a&gt; – cross-platform client written in Rust&lt;/h4&gt;
&lt;p&gt;Public development started last year and now even IRCv3.2 capability support is being implemented.&lt;/p&gt;
&lt;h4 id=&#34;hexchat&#34;&gt;&lt;a href=&#34;https://hexchat.github.io/&#34;&gt;HexChat&lt;/a&gt; - client for Windows and UNIX-like operating systems&lt;/h4&gt;
&lt;p&gt;An option was added to exclude nickname in window title and URL handling was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;kvirc&#34;&gt;&lt;a href=&#34;https://www.kvirc.net/&#34;&gt;KVIrc&lt;/a&gt; – client built with Qt&lt;/h4&gt;
&lt;p&gt;KDE4 support was dropped in favour of KDE5.&lt;/p&gt;
&lt;h4 id=&#34;mirc&#34;&gt;&lt;a href=&#34;https://www.mirc.com/&#34;&gt;mIRC&lt;/a&gt; – 95 ‘til infinity (Windows-only)&lt;/h4&gt;
&lt;p&gt;Additions and improvements in version 7.73 include support for IRCv3 standard-replies capability, smarter &amp;ldquo;keep channels open&amp;rdquo; feature, more complete SASL authentication support and improved Find dialog in Scripts Editor.&lt;/p&gt;
&lt;h4 id=&#34;pidgin&#34;&gt;&lt;a href=&#34;https://pidgin.im/&#34;&gt;Pidgin&lt;/a&gt; - a multi-network/protocol chat application&lt;/h4&gt;
&lt;p&gt;The old IRC protocol plugin was removed in favour of the IRCv3 plugin. Additions include support for SASL authentication, message-tags and msgid.&lt;/p&gt;
&lt;h4 id=&#34;polari&#34;&gt;&lt;a href=&#34;https://wiki.gnome.org/Apps/Polari&#34;&gt;Polari&lt;/a&gt; - GNOME’s client&lt;/h4&gt;
&lt;p&gt;Developers continued the UI code rework making use of libadwaita.&lt;/p&gt;
&lt;h4 id=&#34;smuxi&#34;&gt;&lt;a href=&#34;https://smuxi.im/&#34;&gt;Smuxi&lt;/a&gt; – multi-protocol and cross-platform&lt;/h4&gt;
&lt;p&gt;Lots of maintenance work went in, for example dropping the Glade# UI dependency in favour of GtkBuilder.&lt;/p&gt;
&lt;h4 id=&#34;sweetirc&#34;&gt;&lt;a href=&#34;https://github.com/stoiandan/SweetIRC&#34;&gt;SweetIRC&lt;/a&gt; – client for macOS written with Swift and SwiftUI&lt;/h4&gt;
&lt;p&gt;It&amp;rsquo;s pretty fresh with public development starting last October, but there are not many macOS clients around, so maybe spread the word and lend a hand?&lt;/p&gt;
&lt;h3 id=&#34;terminal-clients&#34;&gt;Terminal clients&lt;/h3&gt;
&lt;h4 id=&#34;girc-lisp&#34;&gt;&lt;a href=&#34;https://github.com/McParen/girc&#34;&gt;girc&lt;/a&gt; - client written in Common Lisp&lt;/h4&gt;
&lt;p&gt;Additions include &lt;code&gt;ctcp&lt;/code&gt;, &lt;code&gt;ctcp action&lt;/code&gt;, &lt;code&gt;query&lt;/code&gt;, &lt;code&gt;channel&lt;/code&gt; and &lt;code&gt;me&lt;/code&gt; commands as well as a way to specify a server host and nick on startup.&lt;/p&gt;
&lt;h4 id=&#34;glirc&#34;&gt;&lt;a href=&#34;https://github.com/glguy/irc-core&#34;&gt;glirc&lt;/a&gt; - Haskell library and console client&lt;/h4&gt;
&lt;p&gt;Support was added for socks5 authentication.&lt;/p&gt;
&lt;h4 id=&#34;irssi&#34;&gt;&lt;a href=&#34;https://irssi.org/&#34;&gt;Irssi&lt;/a&gt; - your text mode chatting application since 1999&lt;/h4&gt;
&lt;p&gt;Listmodes and their timestamps are now properly formatted and Irssi can receive monospace formatting characters.&lt;/p&gt;
&lt;h4 id=&#34;rirc&#34;&gt;&lt;a href=&#34;https://rcr.io/rirc/&#34;&gt;rirc&lt;/a&gt; - a minimalistic irc client written in C&lt;/h4&gt;
&lt;p&gt;Home and end keys are now supported in buffer scrollback, inline formatting characters are now supported and support was added for &lt;code&gt;names&lt;/code&gt;, &lt;code&gt;who&lt;/code&gt;, &lt;code&gt;whois&lt;/code&gt; and &lt;code&gt;whowas&lt;/code&gt; commands alongside many other additions and fixes.&lt;/p&gt;
&lt;h4 id=&#34;senpai&#34;&gt;&lt;a href=&#34;https://sr.ht/~taiite/senpai/&#34;&gt;senpai&lt;/a&gt; - TUI client made for bouncers&lt;/h4&gt;
&lt;p&gt;Additions include a setup assistant, improved handling of chathistory and an option to hide join/part messages.&lt;/p&gt;
&lt;h4 id=&#34;swirc&#34;&gt;&lt;a href=&#34;https://www.nifty-networks.net/swirc/&#34;&gt;Swirc&lt;/a&gt; - lightweight ICB and IRC client&lt;/h4&gt;
&lt;p&gt;Additions include a stats command, expanded support for tab completion in commands, support for external SASL authentication, a SOCKS proxy client, spelling support with Hunspell and improved unicode support in the printtext and readline modules.&lt;/p&gt;
&lt;h4 id=&#34;tiny&#34;&gt;&lt;a href=&#34;https://github.com/osa1/tiny&#34;&gt;tiny&lt;/a&gt; – client written in Rust&lt;/h4&gt;
&lt;p&gt;Text formatting rendering was implemented and an ability to configure &lt;code&gt;/ignore&lt;/code&gt; and &lt;code&gt;/notify&lt;/code&gt; defaults for tabs was added.&lt;/p&gt;
&lt;h4 id=&#34;weechat&#34;&gt;&lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; - the extensible chat client&lt;/h4&gt;
&lt;p&gt;Development was very active with some highlights being addition of new IRC capabilities draft/multiline, batch and echo-message, new commands &lt;code&gt;/action&lt;/code&gt;, &lt;code&gt;/rules&lt;/code&gt; and &lt;code&gt;/knock&lt;/code&gt;, 256 colors by default and multiline support.&lt;/p&gt;
&lt;h3 id=&#34;bouncers&#34;&gt;Bouncers&lt;/h3&gt;
&lt;p&gt;They stay online, so you don’t have to!&lt;/p&gt;
&lt;h4 id=&#34;pounce&#34;&gt;&lt;a href=&#34;https://git.causal.agency/pounce/about/&#34;&gt;pounce&lt;/a&gt; - multi-client, TLS-only IRC bouncer. Uses server-time extension to communicate with clients&lt;/h4&gt;
&lt;p&gt;Irssi&amp;rsquo;s invalid &lt;code&gt;JOIN&lt;/code&gt; is now handled during registration.&lt;/p&gt;
&lt;h4 id=&#34;soju&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/soju&#34;&gt;soju&lt;/a&gt; – multi-user bouncer&lt;/h4&gt;
&lt;p&gt;Support was added for admins to run a command as another user, Unix admin sockets to run any BouncerServ command from the shell, external authentication (PAM and OAuth 2.0 for now) and storing message history in a database rather than plain-text files. An example systemd service file was added.&lt;/p&gt;
&lt;h3 id=&#34;daemons&#34;&gt;Daemons&lt;/h3&gt;
&lt;h4 id=&#34;ergo&#34;&gt;&lt;a href=&#34;https://ergo.chat/&#34;&gt;Ergo&lt;/a&gt; - combining the features of an ircd, a services framework, and a bouncer&lt;/h4&gt;
&lt;p&gt;Additions and improvements include standard-replies capability, better handling of websockets, support for draft/pre-away and draft/message-redaction, support for implicit TLS for mail submission agents and an init script for bsd-rc.&lt;/p&gt;
&lt;h4 id=&#34;gossip&#34;&gt;&lt;a href=&#34;https://github.com/mitchr/gossip&#34;&gt;gossip&lt;/a&gt; - server written in Go&lt;/h4&gt;
&lt;p&gt;Support was added for invite-notify and registering channels.&lt;/p&gt;
&lt;h4 id=&#34;inspircd&#34;&gt;&lt;a href=&#34;https://www.inspircd.org/&#34;&gt;InspIRCd&lt;/a&gt; - stable, high-performance and modular&lt;/h4&gt;
&lt;p&gt;Additions include support for standard-replies, warning about expiring or expired client certificates and support for cloaking users by their ident/username.&lt;/p&gt;
&lt;h4 id=&#34;miniircd&#34;&gt;&lt;a href=&#34;https://github.com/jrosdahl/miniircd&#34;&gt;miniircd&lt;/a&gt; - a small and limited server with no configuration required&lt;/h4&gt;
&lt;p&gt;Version 2.2 was released with various bug fixes.&lt;/p&gt;
&lt;h4 id=&#34;ngircd&#34;&gt;&lt;a href=&#34;https://ngircd.barton.de/&#34;&gt;ngIRCd&lt;/a&gt; – lightweight IRC server&lt;/h4&gt;
&lt;p&gt;Ircops can now use &lt;code&gt;WHO&lt;/code&gt; on any channel and handling of channel modes was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;solanum&#34;&gt;&lt;a href=&#34;https://solanum.chat/&#34;&gt;Solanum&lt;/a&gt; - an IRCd for unified networks&lt;/h4&gt;
&lt;p&gt;Various fixes and improvements were made.&lt;/p&gt;
&lt;h4 id=&#34;unrealircd&#34;&gt;&lt;a href=&#34;https://www.unrealircd.org/&#34;&gt;UnrealIRCd&lt;/a&gt; - the most widely deployed IRCd&lt;/h4&gt;
&lt;p&gt;JSON-RPC support was expanded, adding to the usability of the Administration Webpanel. Channel modes, chathistory and &lt;code&gt;whowas&lt;/code&gt; were improved and an experimental spam filter was added&lt;/p&gt;
&lt;h3 id=&#34;bots&#34;&gt;Bots&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/shadow.png&#34;
    alt=&#34;Shadow web admin screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Shadow web admin screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;This and the next section has been curated with programming language diversity in mind.&lt;/p&gt;
&lt;h4 id=&#34;botto&#34;&gt;&lt;a href=&#34;https://github.com/strong-code/botto&#34;&gt;Botto&lt;/a&gt; (Node.js)&lt;/h4&gt;
&lt;p&gt;Search commands for YouTube videos and channel logs were added and many commands were improved.&lt;/p&gt;
&lt;h4 id=&#34;cbot&#34;&gt;&lt;a href=&#34;https://github.com/brenns10/cbot&#34;&gt;cbot&lt;/a&gt; - bot with features implemented as dynamically loaded plugins (C)&lt;/h4&gt;
&lt;p&gt;APIs were added for reactions and callbacks.&lt;/p&gt;
&lt;h4 id=&#34;eggdrop&#34;&gt;&lt;a href=&#34;https://eggheads.org/&#34;&gt;Eggdrop&lt;/a&gt; - the oldest bot still in active development (C/Tcl)&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;code&gt;chghost&lt;/code&gt; IRCv3 capability, which allows servers to send a notification when clients change their username or host.&lt;/p&gt;
&lt;h4 id=&#34;honeybot&#34;&gt;&lt;a href=&#34;https://github.com/pyhoneybot/honeybot&#34;&gt;Honeybot&lt;/a&gt; - a bot with simple plugin development experience (Python)&lt;/h4&gt;
&lt;p&gt;New plugin additions include IMDb search and basketball medal lookup.&lt;/p&gt;
&lt;h4 id=&#34;kameloso&#34;&gt;&lt;a href=&#34;https://github.com/zorael/kameloso&#34;&gt;kameloso&lt;/a&gt; - IRC and Twitch bot (D)&lt;/h4&gt;
&lt;p&gt;IRC colours 16 and above are now mapped to terminal ANSI colouring.&lt;/p&gt;
&lt;h4 id=&#34;limnoria&#34;&gt;&lt;a href=&#34;https://limnoria.net/&#34;&gt;Limnoria&lt;/a&gt; - robust, full-featured, and user/programmer-friendly bot (Python)&lt;/h4&gt;
&lt;p&gt;Various fixes and code cleanups were made.&lt;/p&gt;
&lt;h4 id=&#34;nibblrjr&#34;&gt;&lt;a href=&#34;https://nibblr.pw/&#34;&gt;Nibblrjr&lt;/a&gt; - bot framework for creating custom behaviour dynamically (Node.js)&lt;/h4&gt;
&lt;p&gt;A paste API was added for hosting content as HTML or text (HTML is sandboxed).&lt;/p&gt;
&lt;h4 id=&#34;pbot&#34;&gt;&lt;a href=&#34;https://github.com/pragma-/pbot/&#34;&gt;PBot&lt;/a&gt; – a pragmatic bot (Perl)&lt;/h4&gt;
&lt;p&gt;Support was added for IRCv3 message tags and &lt;code&gt;chghost&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;shadow&#34;&gt;&lt;a href=&#34;https://github.com/ablakely/shadow&#34;&gt;Shadow&lt;/a&gt; - a modular and event driven bot (Perl)&lt;/h4&gt;
&lt;p&gt;This old bot grew a web administration panel.&lt;/p&gt;
&lt;h4 id=&#34;skybot&#34;&gt;&lt;a href=&#34;https://github.com/rmmh/skybot&#34;&gt;Skybot&lt;/a&gt; - multithreaded and multinetwork bot (Python)&lt;/h4&gt;
&lt;p&gt;Plugins were added for ChatGPT and SoundCloud track metadata.&lt;/p&gt;
&lt;h4 id=&#34;sopel&#34;&gt;&lt;a href=&#34;https://sopel.chat/&#34;&gt;Sopel&lt;/a&gt; - lightweight, easy-to-use utility bot (Python)&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;STATUSMSG&lt;/code&gt; is now handled and an IRCv3 capabilities submodule was added.&lt;/p&gt;
&lt;h3 id=&#34;libraries-frameworks-and-utilities&#34;&gt;Libraries, frameworks and utilities&lt;/h3&gt;
&lt;h4 id=&#34;birchwood&#34;&gt;&lt;a href=&#34;https://github.com/deavmi/birchwood&#34;&gt;birchwood&lt;/a&gt; - a sane IRC framework (D)&lt;/h4&gt;
&lt;p&gt;This framework entered public development last October and recently the creator wrote a &lt;a href=&#34;https://deavmi.assigned.network/blog/birchwood/&#34;&gt;blog post about it&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;dialect&#34;&gt;&lt;a href=&#34;https://github.com/zorael/dialect&#34;&gt;Dialect&lt;/a&gt; - IRC parsing library (D)&lt;/h4&gt;
&lt;p&gt;IRC event parsing now retains more information.&lt;/p&gt;
&lt;h4 id=&#34;hii&#34;&gt;&lt;a href=&#34;https://github.com/nmeum/hii&#34;&gt;hii&lt;/a&gt; – a file-based client inspired by ii&lt;/h4&gt;
&lt;p&gt;Support was added for SASL authentication using the &lt;code&gt;EXTERNAL&lt;/code&gt; mechanism.&lt;/p&gt;
&lt;h4 id=&#34;irc-framework&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/irc-framework&#34;&gt;irc-framework&lt;/a&gt; – for bots and full clients (Node.js)&lt;/h4&gt;
&lt;p&gt;SASL failure handling was added.&lt;/p&gt;
&lt;h4 id=&#34;irc-go&#34;&gt;&lt;a href=&#34;https://github.com/ergochat/irc-go&#34;&gt;irc-go&lt;/a&gt; - libraries to help with IRC development (Go)&lt;/h4&gt;
&lt;p&gt;Additions include an optional callback for customizing how IRC connections are created (with proxy support), a splitter function to turn messages containing formatting codes into machine-readable representations and a colour parser to do the same for colour code strings.&lt;/p&gt;
&lt;h4 id=&#34;ircrobots&#34;&gt;&lt;a href=&#34;https://github.com/jesopo/ircrobots&#34;&gt;ircrobots&lt;/a&gt; - asynchronous bare-bones IRC bot framework (Python)&lt;/h4&gt;
&lt;p&gt;Support was added for specifying a tls client keypair.&lt;/p&gt;
&lt;h4 id=&#34;superseriousstats&#34;&gt;&lt;a href=&#34;https://sss.dutnie.nl/&#34;&gt;superseriousstats&lt;/a&gt; - a fast and efficient program to create statistics out of various types of IRC chat logs (PHP)&lt;/h4&gt;
&lt;p&gt;URL handling was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;the-irc-crate&#34;&gt;&lt;a href=&#34;https://github.com/aatxe/irc&#34;&gt;The irc crate&lt;/a&gt; - thread-safe and async-friendly client library (Rust)&lt;/h4&gt;
&lt;p&gt;Colour code handling was made more robust and modes with no prefix are now allowed.&lt;/p&gt;
&lt;h4 id=&#34;vinezombie&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~daemoness/vinezombie&#34;&gt;vinezombie&lt;/a&gt; - a modular client library (Rust)&lt;/h4&gt;
&lt;p&gt;The code for this young project was rewritten and the goal is now to be a lower-level library.&lt;/p&gt;
&lt;h4 id=&#34;virc&#34;&gt;&lt;a href=&#34;https://github.com/Herringway/virc&#34;&gt;VIRC&lt;/a&gt; - a simple IRC library (D)&lt;/h4&gt;
&lt;p&gt;Support was added for draft/multiline and partial support was added for message-tags, typing and replies.&lt;/p&gt;
&lt;h3 id=&#34;bridges&#34;&gt;Bridges&lt;/h3&gt;
&lt;h4 id=&#34;bitlbee&#34;&gt;&lt;a href=&#34;https://www.bitlbee.org/&#34;&gt;BitlBee&lt;/a&gt; – gateway to other chat networks&lt;/h4&gt;
&lt;p&gt;There was a fix to Jabber protocol support and lots of under the hood maintenance work.&lt;/p&gt;
&lt;h4 id=&#34;discord-ircv3&#34;&gt;&lt;a href=&#34;https://github.com/delthas/discord-ircv3&#34;&gt;discord-ircv3&lt;/a&gt; – bridge with support for IRCv3 features&lt;/h4&gt;
&lt;p&gt;Support was added for message replies and message redaction.&lt;/p&gt;
&lt;h4 id=&#34;discordrc&#34;&gt;&lt;a href=&#34;https://discordrc.com/&#34;&gt;Discord Relay Chat&lt;/a&gt; - an IRC client using Discord as the frontend&lt;/h4&gt;
&lt;p&gt;There is now no limit to the number of channels and command history tracking and querying was added alongside many quality of life improvements.&lt;/p&gt;
&lt;h4 id=&#34;heisenbridge&#34;&gt;&lt;a href=&#34;https://github.com/hifi/heisenbridge&#34;&gt;Heisenbridge&lt;/a&gt; - a bouncer-style Matrix IRC bridge&lt;/h4&gt;
&lt;p&gt;Websocket support was added.&lt;/p&gt;
&lt;h4 id=&#34;localslackirc&#34;&gt;&lt;a href=&#34;https://github.com/ltworf/localslackirc&#34;&gt;localslackirc&lt;/a&gt; - gateway for Slack, running on localhost for one user&lt;/h4&gt;
&lt;p&gt;Handling of &lt;code&gt;JOIN&lt;/code&gt;s was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;matrix2051&#34;&gt;&lt;a href=&#34;https://github.com/progval/matrix2051&#34;&gt;Matrix2051&lt;/a&gt; - IRC server backed by Matrix&lt;/h4&gt;
&lt;p&gt;draft/message-redaction was implemented.&lt;/p&gt;
&lt;h4 id=&#34;reliable-discord&#34;&gt;&lt;a href=&#34;https://github.com/mk-fg/reliable-discord-client-irc-daemon&#34;&gt;Reliable Discord-client IRC Daemon (rdircd)&lt;/a&gt; - personal discord-client to irc-server translation daemon&lt;/h4&gt;
&lt;p&gt;Channel name deduplication was made more robust and regexp-filtering for received messages was added.&lt;/p&gt;
&lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt;
&lt;p&gt;Taking care of user accounts and channels among other things.&lt;/p&gt;
&lt;h4 id=&#34;anope&#34;&gt;&lt;a href=&#34;https://www.anope.org/&#34;&gt;Anope&lt;/a&gt; – highly modular set of services&lt;/h4&gt;
&lt;p&gt;Version 2.0.13 was released in June with bug fixes.&lt;/p&gt;
&lt;h4 id=&#34;atheme&#34;&gt;&lt;a href=&#34;https://atheme.github.io/&#34;&gt;Atheme&lt;/a&gt; - for large networks with high scalability requirements&lt;/h4&gt;
&lt;p&gt;Login failure notices were made opt-in and modules were added for password-based login throttling and channel join rate monitoring.&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
    <item>
      <title>IRC bouncer setup with soju and gamja on Caddy web server</title>
      <link>https://www.ilmarilauhakangas.fi/irc_bouncer_setup_with_soju_and_gamja_on_caddy_web_server/</link>
      <pubDate>Tue, 14 Mar 2023 13:40:06 +0200</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_bouncer_setup_with_soju_and_gamja_on_caddy_web_server/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/soju&#34;&gt;Soju&lt;/a&gt; is an &lt;a href=&#34;https://en.wikipedia.org/wiki/BNC_(software)#IRC&#34;&gt;IRC bouncer&lt;/a&gt; and &lt;a href=&#34;https://git.sr.ht/~emersion/gamja&#34;&gt;gamja&lt;/a&gt; is a web client that works nicely with it. This article describes how to make them work with &lt;a href=&#34;https://caddyserver.com/&#34;&gt;Caddy&lt;/a&gt; web server.&lt;/p&gt;
&lt;p&gt;The file paths mentioned may vary depending on the operating system or Linux distribution used. I set this up using the current stable soju release (0.5.2) provided by Arch Linux.&lt;/p&gt;
&lt;p&gt;Install gamja into your web server path:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;git clone https://git.sr.ht/~emersion/gamja
cd gamja
npm install --production
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;You can optionally add a &lt;code&gt;config.json&lt;/code&gt; file in the gamja directory to define various settings. Note that you have to remove the comments from the example provided in the gamja site as they are not valid JSON. For this particular setup, there is no need to define a &amp;ldquo;url&amp;rdquo; option as the default &amp;ldquo;/socket&amp;rdquo; will be used.&lt;/p&gt;
&lt;p&gt;In your DNS records, define a subdomain.&lt;/p&gt;
&lt;p&gt;Example configuration block for Caddy:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;irc.blabla.com {
    encode gzip
    tls my@email.com
    root * /var/www/gamja
    reverse_proxy /socket http://127.0.0.1:1234
    file_server
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Replace the port as you want.&lt;/p&gt;
&lt;p&gt;You might want to add &lt;a href=&#34;https://caddyserver.com/docs/caddyfile/directives/basicauth&#34;&gt;basicauth&lt;/a&gt; for access control.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/etc/soju/config&lt;/code&gt; has by default&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;db sqlite3 /var/lib/soju/main.db
message-store fs /var/lib/soju/logs/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Run &lt;code&gt;sojuctl&lt;/code&gt; to create an admin user:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo sojuctl -config /etc/soju/config create-user username -admin
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will modify &lt;code&gt;/var/lib/soju/main.db&lt;/code&gt;, adding the new admin user. Save the password as it will be used when logging in via gamja.&lt;/p&gt;
&lt;p&gt;In the next release, the admin user creation will be done with &lt;a href=&#34;https://git.sr.ht/~emersion/soju/commit/ab235f0099c97ce2d95312acec244813314dc99d&#34;&gt;the sojudb command&lt;/a&gt; instead.&lt;/p&gt;
&lt;p&gt;The systemd service file provided by the Arch Linux package did not work for me, so I adapted &lt;a href=&#34;https://gist.github.com/gdamjan/099ce9df5f0f2ef0a4faab6f8018b038&#34;&gt;Damjan Georgievski&amp;rsquo;s example service&lt;/a&gt;, resulting in a &lt;code&gt;/etc/systemd/system/soju.service&lt;/code&gt; that looked like this:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Unit]
Description=soju IRC bouncer service
Documentation=https://soju.im/
Documentation=man:soju(1) man:sojuctl(1)
Wants=network-online.target
After=network-online.target

[Service]  
Type=simple   
User=soju  
Group=soju
DynamicUser=yes
StateDirectory=soju
ConfigurationDirectory=soju
RuntimeDirectory=soju
ExecStart=/usr/bin/soju --config /etc/soju/config -listen ws+insecure://127.0.0.1:3001
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Update 21 March 2023:&lt;/strong&gt; soju now ships with an example service file &lt;code&gt;soju/contrib/soju.service&lt;/code&gt; thanks to Damjan.&lt;/p&gt;
&lt;p&gt;Enable and start the service with&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo systemctl enable --now soju
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Now you can navigate to your subdomain with a web browser and log into gamja with the admin user name and password.&lt;/p&gt;
&lt;p&gt;In the gamja interface, click &amp;ldquo;bouncer&amp;rdquo; in the top left to attach to the bouncer. Click &amp;ldquo;Add network&amp;rdquo; in the top right to add an IRC network. You can say &lt;code&gt;/msg BouncerServ help&lt;/code&gt; to see all the commands you can use to interact with the bouncer. The commands are also documented in &lt;a href=&#34;https://soju.im/doc/soju.1.html#IRC_SERVICE&#34;&gt;soju&amp;rsquo;s manual&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Regarding the first steps, note what the soju manual says in the description:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When joining a channel, the channel will be saved and automatically joined on the next connection. When registering or authenticating with NickServ, the credentials will be saved and automatically used on the next connection if the server supports SASL.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To conveniently access the log text files with my normal user, I use &lt;a href=&#34;https://bindfs.org/&#34;&gt;bindfs&lt;/a&gt; and &lt;a href=&#34;https://github.com/libfuse/libfuse&#34;&gt;FUSE&lt;/a&gt;. I avoid having to mess around with permissions by adding a line like this to &lt;code&gt;/etc/fstab&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/var/lib/soju/logs /home/myuser/sojulogs fuse.bindfs force-user=myuser,force-group=myuser,create-for-user=soju,create-for-group=soju,create-with-perms=g=rD,chgrp-ignore,chown-ignore,chmod-ignore 0 0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;and creating the corresponding directory to bind to and mounting it with &lt;code&gt;sudo mount /home/myuser/sojulogs&lt;/code&gt;. If you are interested in trying this out, you can start by checking the distro availability of bindfs from &lt;a href=&#34;https://repology.org/project/bindfs/versions&#34;&gt;Repology&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks to everyone who helped me on #soju at Libera Chat and Caddy server forum!&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
    <item>
      <title>IRC technology news from the second half of 2022</title>
      <link>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2022/</link>
      <pubDate>Tue, 17 Jan 2023 13:40:06 +0200</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2022/</guid>
      <description>&lt;p&gt;The IRC world was bustling as ever during the past six months, with new projects springing up and existing ones being enriched and polished.&lt;/p&gt;
&lt;h3 id=&#34;protocol-specifications&#34;&gt;Protocol specifications&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/IRCv3.svg&#34;
    alt=&#34;IRCv3 logo&#34; width=&#34;80&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;The IRCv3 Working Group published a &lt;a href=&#34;https://ircv3.net/2022/11/20/spec-round-up&#34;&gt;2022 spec round-up article&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://ircv3.net/specs/extensions/extended-monitor&#34;&gt;Extended monitor&lt;/a&gt; was ratified and the requirement to set &lt;a href=&#34;https://ircv3.net/specs/extensions/account-tag&#34;&gt;account-tag&lt;/a&gt; on all messages was relaxed.&lt;/p&gt;
&lt;h3 id=&#34;documentation&#34;&gt;Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://modern.ircdocs.horse/&#34;&gt;Modern IRC Client Protocol&lt;/a&gt; docs received updates related to messages such as WHOIS and AWAY.&lt;/p&gt;
&lt;h3 id=&#34;mobile-clients&#34;&gt;Mobile clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/goguma_image_preview.png&#34;
    alt=&#34;goguma screenshot showing image previews&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;goguma screenshot showing image previews&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;communi-for-sailfish&#34;&gt;&lt;a href=&#34;https://github.com/communi/communi-sailfish&#34;&gt;Communi for Sailfish&lt;/a&gt; - The first and foremost IRC client for Sailfish OS&lt;/h4&gt;
&lt;p&gt;Many improvements were made to notifications.&lt;/p&gt;
&lt;h4 id=&#34;goguma&#34;&gt;&lt;a href=&#34;https://sr.ht/~emersion/goguma/&#34;&gt;goguma&lt;/a&gt; - for mobile Linux and Android&lt;/h4&gt;
&lt;p&gt;Lots of work went into this new client. It now supports &lt;a href=&#34;https://unifiedpush.org/&#34;&gt;UnifiedPush&lt;/a&gt; for push notifications, avoiding the requirement for Google Play Services. An optional image preview is available.&lt;/p&gt;
&lt;h4 id=&#34;irccloud&#34;&gt;&lt;a href=&#34;https://www.irccloud.com/&#34;&gt;IRCCloud&lt;/a&gt; - Connect to any IRC server out there, and even Slack workspaces&lt;/h4&gt;
&lt;p&gt;Both the Android and iOS apps gained support for quickly jumping between channels, typing indicators and message editing. Additionally the Android app now supports themed icons on version 13. &lt;a href=&#34;https://blog.irccloud.com/2023-price-increase/&#34;&gt;A blog post&lt;/a&gt; gives a summary of things that happened on the server side during the past couple of years.&lt;/p&gt;
&lt;h3 id=&#34;web-clients&#34;&gt;Web clients&lt;/h3&gt;
&lt;p&gt;Many of these include support for persistent history, so there is some overlap with the bouncer category.&lt;/p&gt;
&lt;h4 id=&#34;convos&#34;&gt;&lt;a href=&#34;https://convos.chat/&#34;&gt;Convos&lt;/a&gt; - Mojolicious in the backend and Svelte in the frontend&lt;/h4&gt;
&lt;p&gt;The user interface received many fixes and tweaks for better behaviour.&lt;/p&gt;
&lt;h4 id=&#34;gamja&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/gamja&#34;&gt;gamja&lt;/a&gt; – a bare-bones web client&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://emersion.fr/blog/2022/irc-and-oauth2/&#34;&gt;OAuth 2.0 authentication support was implemented&lt;/a&gt;, a config option was added to generate random nicknames and infinite scrolling got special handling of messages to avoid triggering unnecessary notifications.&lt;/p&gt;
&lt;h4 id=&#34;irc-hybrid-client&#34;&gt;&lt;a href=&#34;https://github.com/cotarr/irc-hybrid-client&#34;&gt;irc-hybrid-client&lt;/a&gt; – Single user hybrid client using JavaScript frontend and Node.js/Express backend&lt;/h4&gt;
&lt;p&gt;Additions include a page to view and edit the list of IRC server definitions, an API to manage servers, an option to automatically save and restore the message cache across web server restarts, unread message counters, support for SASL authentication and a better message cache.&lt;/p&gt;
&lt;h4 id=&#34;kiwiirc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwiirc&#34;&gt;KiwiIRC&lt;/a&gt; – uses static files and supports theming and plugins (JavaScript)&lt;/h4&gt;
&lt;p&gt;Many bug fixes went in and support was added for secret channels.&lt;/p&gt;
&lt;h4 id=&#34;the-lounge&#34;&gt;&lt;a href=&#34;https://thelounge.chat/&#34;&gt;The Lounge&lt;/a&gt; - modern web client utilising Node.js&lt;/h4&gt;
&lt;p&gt;Realname is now set to nickname on first connect to avoid confusing display in some other clients and search was improved.&lt;/p&gt;
&lt;h3 id=&#34;desktop-clients&#34;&gt;Desktop clients&lt;/h3&gt;
&lt;h4 id=&#34;circe&#34;&gt;&lt;a href=&#34;https://github.com/jorgenschaefer/circe&#34;&gt;Circe&lt;/a&gt; - a client for IRC in Emacs&lt;/h4&gt;
&lt;p&gt;Support was added for strikethrough/monospace format codes.&lt;/p&gt;
&lt;h4 id=&#34;erc&#34;&gt;&lt;a href=&#34;https://www.gnu.org/savannah-checkouts/gnu/emacs/erc.html&#34;&gt;ERC&lt;/a&gt; - an Emacs IRC client&lt;/h4&gt;
&lt;p&gt;Additions include a new option to quote new items added to match lists, SASL authentication (non-IRCv3) and improved irc:// url handling.&lt;/p&gt;
&lt;h4 id=&#34;hexchat&#34;&gt;&lt;a href=&#34;https://hexchat.github.io/&#34;&gt;HexChat&lt;/a&gt; - client for Windows and UNIX-like operating systems&lt;/h4&gt;
&lt;p&gt;Various fixes went in and /SERVER and /SERVCHAN now use SSL by default.&lt;/p&gt;
&lt;h4 id=&#34;konversation&#34;&gt;&lt;a href=&#34;https://konversation.kde.org/&#34;&gt;Konversation&lt;/a&gt; – KDE’s IRC client for Windows, Linux and BSDs&lt;/h4&gt;
&lt;p&gt;Many code cleanups were made related to Qt6 UI toolkit support and buttons were enriched with icons.&lt;/p&gt;
&lt;h4 id=&#34;mirc&#34;&gt;&lt;a href=&#34;https://www.mirc.com/&#34;&gt;mIRC&lt;/a&gt; – 95 ‘til infinity (Windows-only)&lt;/h4&gt;
&lt;p&gt;A bunch of new versions were released with 7.72 being the latest. Additions include support for UTF8ONLY and bot mode tokens, echo-message and various WATCH list numerics.&lt;/p&gt;
&lt;h4 id=&#34;pidgin&#34;&gt;&lt;a href=&#34;https://pidgin.im/&#34;&gt;Pidgin&lt;/a&gt; - a multi-network/protocol chat application&lt;/h4&gt;
&lt;p&gt;IRCv3 features started being added into a new protocol plugin.&lt;/p&gt;
&lt;h4 id=&#34;polari&#34;&gt;&lt;a href=&#34;https://wiki.gnome.org/Apps/Polari&#34;&gt;Polari&lt;/a&gt; - GNOME’s client&lt;/h4&gt;
&lt;p&gt;Notifications were made more robust and UI code was modified to make more use of libadwaita.&lt;/p&gt;
&lt;h4 id=&#34;srain&#34;&gt;&lt;a href=&#34;https://srain.silverrainz.me/&#34;&gt;Srain&lt;/a&gt; – modern client built with GTK&lt;/h4&gt;
&lt;p&gt;Many bug fixes and code cleanups were made.&lt;/p&gt;
&lt;h3 id=&#34;terminal-clients&#34;&gt;Terminal clients&lt;/h3&gt;
&lt;h4 id=&#34;catgirl&#34;&gt;&lt;a href=&#34;https://git.causal.agency/catgirl/about/&#34;&gt;catgirl&lt;/a&gt; - TLS-only client&lt;/h4&gt;
&lt;p&gt;Various fixes and code refactorings went in.&lt;/p&gt;
&lt;h4 id=&#34;circo&#34;&gt;&lt;a href=&#34;https://github.com/clamiax/circo&#34;&gt;circo&lt;/a&gt; - a simple client for the terminal&lt;/h4&gt;
&lt;p&gt;Nick count per channel was added and connections now use a non-blocking socket.&lt;/p&gt;
&lt;h4 id=&#34;girc-lisp&#34;&gt;&lt;a href=&#34;https://github.com/McParen/girc&#34;&gt;girc&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;This client implemented in Common Lisp doesn&amp;rsquo;t have much in the way of docs, but recently gained support for SASL authentication among other things.&lt;/p&gt;
&lt;h4 id=&#34;glirc&#34;&gt;&lt;a href=&#34;https://github.com/glguy/irc-core&#34;&gt;glirc&lt;/a&gt; - Haskell library and console client&lt;/h4&gt;
&lt;p&gt;Better away status handling was implemented.&lt;/p&gt;
&lt;h4 id=&#34;irssi&#34;&gt;&lt;a href=&#34;https://irssi.org/&#34;&gt;Irssi&lt;/a&gt; - your text mode chatting application since 1999&lt;/h4&gt;
&lt;p&gt;Many fixes were made and the documentation was updated.&lt;/p&gt;
&lt;h4 id=&#34;senpai&#34;&gt;&lt;a href=&#34;https://sr.ht/~taiite/senpai/&#34;&gt;senpai&lt;/a&gt; - TUI client made for bouncers&lt;/h4&gt;
&lt;p&gt;Additions include /whois command, support for hex colours, config option to beep on highlight, support for soju.im/bouncer-networks-notify and WHOX. &lt;a href=&#34;https://github.com/delthas/go-libnp&#34;&gt;A library&lt;/a&gt; was created to support an /NP command for sending the name of the current song being played on the system.&lt;/p&gt;
&lt;h4 id=&#34;swirc&#34;&gt;&lt;a href=&#34;https://www.nifty-networks.net/swirc/&#34;&gt;Swirc&lt;/a&gt; - lightweight ICB and IRC client&lt;/h4&gt;
&lt;p&gt;An optional ident protocol daemon was added and support for tab completion in commands was expanded. Swirc can now be run under GNU Hurd.&lt;/p&gt;
&lt;h4 id=&#34;tiny&#34;&gt;&lt;a href=&#34;https://github.com/osa1/tiny&#34;&gt;tiny&lt;/a&gt; – client written in Rust&lt;/h4&gt;
&lt;p&gt;PART and QUIT messages can now be given as arguments for /close and /quit commands, passwords can now be read from external commands such as password managers and support was added for SASL EXTERNAL.&lt;/p&gt;
&lt;h4 id=&#34;weechat&#34;&gt;&lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; - the extensible chat client&lt;/h4&gt;
&lt;p&gt;Versions 3.6 and 3.7 were released with additions such as an /item command for creating custom bar items, possibility to do case conversion in expressions, ability to remove multiple filters at once with &amp;ldquo;/filter del&amp;rdquo;, support for IRC messages RPL_HELPSTART, RPL_HELPTXT and RPL_ENDOFHELP as well as options for rotating and compressing log files.&lt;/p&gt;
&lt;h3 id=&#34;bouncers&#34;&gt;Bouncers&lt;/h3&gt;
&lt;p&gt;They stay online, so you don’t have to!&lt;/p&gt;
&lt;h4 id=&#34;pounce&#34;&gt;&lt;a href=&#34;https://git.causal.agency/pounce/about/&#34;&gt;pounce&lt;/a&gt; - multi-client, TLS-only IRC bouncer. Uses server-time extension to communicate with clients&lt;/h4&gt;
&lt;p&gt;Various fixes and refactorings were made.&lt;/p&gt;
&lt;h4 id=&#34;soju&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/soju&#34;&gt;soju&lt;/a&gt; – multi-user bouncer&lt;/h4&gt;
&lt;p&gt;Stability of WHO was improved, also benefiting from a cache to avoid hitting server rate limits. TLS certificate pinning was implemented to allow connecting to servers using self-signed certificates.&lt;/p&gt;
&lt;h4 id=&#34;znc&#34;&gt;&lt;a href=&#34;https://wiki.znc.in/ZNC&#34;&gt;ZNC&lt;/a&gt; - an advanced bouncer&lt;/h4&gt;
&lt;p&gt;Python support for writing modules was expanded and notification logic was reworked.&lt;/p&gt;
&lt;h3 id=&#34;daemons&#34;&gt;Daemons&lt;/h3&gt;
&lt;h4 id=&#34;ergo&#34;&gt;&lt;a href=&#34;https://ergo.chat/&#34;&gt;Ergo&lt;/a&gt; - combining the features of an ircd, a services framework, and a bouncer&lt;/h4&gt;
&lt;p&gt;Version 2.11 was released with draft/persistence capability, debugging improvements and many bug fixes.&lt;/p&gt;
&lt;h4 id=&#34;gossip&#34;&gt;&lt;a href=&#34;https://github.com/mitchr/gossip&#34;&gt;gossip&lt;/a&gt; - server written in Go&lt;/h4&gt;
&lt;p&gt;Support was added for account-notify.&lt;/p&gt;
&lt;h4 id=&#34;inspircd&#34;&gt;&lt;a href=&#34;https://www.inspircd.org/&#34;&gt;InspIRCd&lt;/a&gt; - stable, high-performance and modular&lt;/h4&gt;
&lt;p&gt;Additions include support for extended-monitor, a regex_pcre2 module, ability for remote servers to specify the context of a message, support for logging JSON to stdout and stderr, WHO request data enriched with the matched channel, accountnicks metadata as a base for nicer account and nick management, improved stats responses, support for per-oper/opertype operator MOTDs and improved oper features. Some of these changes were only toward the unreleased version 4.&lt;/p&gt;
&lt;h4 id=&#34;ircd-hybrid&#34;&gt;&lt;a href=&#34;https://www.ircd-hybrid.org/&#34;&gt;Ircd-hybrid&lt;/a&gt; - a lightweight, high-performance daemon&lt;/h4&gt;
&lt;p&gt;Support for WHOX was added and three new channels modes were added to control private messages, kicks and invites.&lt;/p&gt;
&lt;h4 id=&#34;ngircd&#34;&gt;&lt;a href=&#34;https://ngircd.barton.de/&#34;&gt;ngIRCd&lt;/a&gt; – lightweight IRC server&lt;/h4&gt;
&lt;p&gt;Various fixes and cleanups were made.&lt;/p&gt;
&lt;h4 id=&#34;solanum&#34;&gt;&lt;a href=&#34;https://solanum.chat/&#34;&gt;Solanum&lt;/a&gt; - an IRCd for unified networks&lt;/h4&gt;
&lt;p&gt;The code was made compatible with OpenSSL 3.0 and user mode +I was added to allow users to hide their idle time.&lt;/p&gt;
&lt;h4 id=&#34;unrealircd&#34;&gt;&lt;a href=&#34;https://www.unrealircd.org/&#34;&gt;UnrealIRCd&lt;/a&gt; - the most widely deployed IRCd&lt;/h4&gt;
&lt;p&gt;Feature release 6.0.5 brought experimental JSON-RPC support, a new TLINE command and improved logging.&lt;/p&gt;
&lt;h3 id=&#34;bots&#34;&gt;Bots&lt;/h3&gt;
&lt;p&gt;This and the next section has been curated with programming language diversity in mind.&lt;/p&gt;
&lt;h4 id=&#34;botto&#34;&gt;&lt;a href=&#34;https://github.com/strong-code/botto&#34;&gt;Botto&lt;/a&gt; (Node.js)&lt;/h4&gt;
&lt;p&gt;Missed commands now display a &amp;ldquo;did you mean&amp;hellip;&amp;rdquo; message for similar available commands, ban handling was added and many improvements to commands were made.&lt;/p&gt;
&lt;h4 id=&#34;cardinal&#34;&gt;&lt;a href=&#34;https://github.com/JohnMaguire/Cardinal&#34;&gt;Cardinal&lt;/a&gt; – bot built with Twisted library with a focus on ease of development (Python)&lt;/h4&gt;
&lt;p&gt;Support was added for censored words to avoid tricking the bot into getting itself banned.&lt;/p&gt;
&lt;h4 id=&#34;cbot&#34;&gt;&lt;a href=&#34;https://github.com/brenns10/cbot&#34;&gt;cbot&lt;/a&gt; - bot with features implemented as dynamically loaded plugins (C)&lt;/h4&gt;
&lt;p&gt;The http server based on libmicrohttpd got an API for sending plaintext responses and a buttcoin plugin was added.&lt;/p&gt;
&lt;h4 id=&#34;codybot&#34;&gt;&lt;a href=&#34;https://github.com/esselfe/codybot&#34;&gt;Codybot&lt;/a&gt; – a Linux bot with C compilation and shell access (C)&lt;/h4&gt;
&lt;p&gt;Various fixes and refactorings were made.&lt;/p&gt;
&lt;h4 id=&#34;eggdrop&#34;&gt;&lt;a href=&#34;https://eggheads.org/&#34;&gt;Eggdrop&lt;/a&gt; - the oldest bot still in active development (C/Tcl)&lt;/h4&gt;
&lt;p&gt;A systemd service installer was added alongside many fixes.&lt;/p&gt;
&lt;h4 id=&#34;honeybot&#34;&gt;&lt;a href=&#34;https://github.com/pyhoneybot/honeybot&#34;&gt;Honeybot&lt;/a&gt; - a bot with simple plugin development experience (Python)&lt;/h4&gt;
&lt;p&gt;Tons of improvements were made to code quality and security. Plugins were added for Duckduckgo search, random images and excuses and URL shortening.&lt;/p&gt;
&lt;h4 id=&#34;kameloso&#34;&gt;&lt;a href=&#34;https://github.com/zorael/kameloso&#34;&gt;kameloso&lt;/a&gt; - IRC and Twitch bot (D)&lt;/h4&gt;
&lt;p&gt;Additions include a new example SamePlugin to showcase bot reactions to plain messages, a simple Time plugin and rewritten Quotes and Notes plugins.&lt;/p&gt;
&lt;h4 id=&#34;limnoria&#34;&gt;&lt;a href=&#34;https://limnoria.net/&#34;&gt;Limnoria&lt;/a&gt; - robust, full-featured, and user/programmer-friendly bot (Python)&lt;/h4&gt;
&lt;p&gt;Fediverse plugin got support for videos (PeerTube), poll plugin got a list command, chathistory support was improved and numerous other fixes and improvements were made.&lt;/p&gt;
&lt;h4 id=&#34;pbot&#34;&gt;&lt;a href=&#34;https://github.com/pragma-/pbot/&#34;&gt;PBot&lt;/a&gt; – a pragmatic bot (Perl)&lt;/h4&gt;
&lt;p&gt;The C standard citation applet now supports C99, C11 and C23 standards and a word morph game plugin was added.&lt;/p&gt;
&lt;h4 id=&#34;pybot&#34;&gt;&lt;a href=&#34;https://github.com/hlmtre/pybot&#34;&gt;Pybot&lt;/a&gt; – an extensible, modular, configurable, and multi-threaded bot (Python)&lt;/h4&gt;
&lt;p&gt;A .schedulelist command was added to list scheduled task per channel.&lt;/p&gt;
&lt;h4 id=&#34;sopel&#34;&gt;&lt;a href=&#34;https://sopel.chat/&#34;&gt;Sopel&lt;/a&gt; - lightweight, easy-to-use utility bot (Python)&lt;/h4&gt;
&lt;p&gt;The anti-looping mechanism was made configurable, built-in help plugin was replaced by sopel-help package, support for LINELEN token was added to send longer messages than the RFC limit of 512 bytes when possible and UTF8ONLY handling was improved.&lt;/p&gt;
&lt;h3 id=&#34;libraries-frameworks-and-utilities&#34;&gt;Libraries, frameworks and utilities&lt;/h3&gt;
&lt;h4 id=&#34;chathistorysync&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/chathistorysync&#34;&gt;chathistorysync&lt;/a&gt; - a synchronization tool for IRC chat history&lt;/h4&gt;
&lt;p&gt;Passwords are now accepted from stdin.&lt;/p&gt;
&lt;h4 id=&#34;dart-irc&#34;&gt;&lt;a href=&#34;https://github.com/GayPizzaSpecifications/irc.dart&#34;&gt;Dart IRC&lt;/a&gt; (Dart)&lt;/h4&gt;
&lt;p&gt;Some code cleanups were made.&lt;/p&gt;
&lt;h4 id=&#34;dialect&#34;&gt;&lt;a href=&#34;https://github.com/zorael/dialect&#34;&gt;Dialect&lt;/a&gt; - IRC parsing library (D)&lt;/h4&gt;
&lt;p&gt;Build configurations were added, so now Twitch server support is opt-in.&lt;/p&gt;
&lt;h4 id=&#34;godot-client&#34;&gt;&lt;a href=&#34;https://github.com/matheusfillipe/gircc&#34;&gt;Godot irc client&lt;/a&gt; - client for the &lt;a href=&#34;https://godotengine.org/&#34;&gt;Godot game engine&lt;/a&gt; (GDScript)&lt;/h4&gt;
&lt;p&gt;The code was made public in June. Basics of the IRC protocol are implemented.&lt;/p&gt;
&lt;h4 id=&#34;goirc&#34;&gt;&lt;a href=&#34;https://github.com/fluffle/goirc&#34;&gt;goirc&lt;/a&gt; - Event-based stateful client framework (Go)&lt;/h4&gt;
&lt;p&gt;SASL authentication support was added.&lt;/p&gt;
&lt;h4 id=&#34;jaraco-irc&#34;&gt;&lt;a href=&#34;https://github.com/jaraco/irc&#34;&gt;irc&lt;/a&gt; – a full-featured library (Python)&lt;/h4&gt;
&lt;p&gt;Failed connection attempts are now handled properly.&lt;/p&gt;
&lt;h4 id=&#34;irc3&#34;&gt;&lt;a href=&#34;https://github.com/gawel/irc3&#34;&gt;irc3&lt;/a&gt; – pluggable client library based on Python&amp;rsquo;s asyncio (Python)&lt;/h4&gt;
&lt;p&gt;Thread safety of the code was improved alongside smaller fixes.&lt;/p&gt;
&lt;h4 id=&#34;irc-framework&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/irc-framework&#34;&gt;irc-framework&lt;/a&gt; – for bots and full clients (Node.js)&lt;/h4&gt;
&lt;p&gt;Handling of WHOX and server capabilities was improved.&lt;/p&gt;
&lt;h4 id=&#34;miniirc&#34;&gt;&lt;a href=&#34;https://github.com/luk3yx/miniirc&#34;&gt;miniirc&lt;/a&gt; - a mini IRC framework (Python)&lt;/h4&gt;
&lt;p&gt;The socket code was made non-blocking to make connections more stable and nick recovery was implemented.&lt;/p&gt;
&lt;h4 id=&#34;mojo-irc&#34;&gt;&lt;a href=&#34;https://github.com/jhthorsen/mojo-irc&#34;&gt;Mojo::IRC&lt;/a&gt; - a client for the &lt;a href=&#34;https://metacpan.org/pod/Mojo%3A%3AIOLoop&#34;&gt;Mojo IOLoop&lt;/a&gt; (Perl/Raku)&lt;/h4&gt;
&lt;p&gt;Some fixes and code cleanups were made.&lt;/p&gt;
&lt;h4 id=&#34;superseriousstats&#34;&gt;&lt;a href=&#34;https://sss.dutnie.nl/&#34;&gt;superseriousstats&lt;/a&gt; - a fast and efficient program to create statistics out of various types of IRC chat logs (PHP)&lt;/h4&gt;
&lt;p&gt;The layout was made more mobile-friendly, handling of URLs was improved and many code cleanups were made.&lt;/p&gt;
&lt;h4 id=&#34;vinezombie&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~daemoness/vinezombie&#34;&gt;vinezombie&lt;/a&gt; - a modular client library (Rust)&lt;/h4&gt;
&lt;p&gt;First public release was in September and while the API is not yet stable, features are being added at a fair clip.&lt;/p&gt;
&lt;h3 id=&#34;bridges&#34;&gt;Bridges&lt;/h3&gt;
&lt;h4 id=&#34;discordrc&#34;&gt;&lt;a href=&#34;https://discordrc.com/&#34;&gt;Discord Relay Chat&lt;/a&gt; - an IRC client using Discord as the frontend&lt;/h4&gt;
&lt;p&gt;Launched in 2021, this bridge now has sensational features such as ChatGPT integration.&lt;/p&gt;
&lt;h4 id=&#34;heisenbridge&#34;&gt;&lt;a href=&#34;https://github.com/hifi/heisenbridge&#34;&gt;Heisenbridge&lt;/a&gt; - a bouncer-style Matrix IRC bridge&lt;/h4&gt;
&lt;p&gt;Some stability and reliability improvements were made.&lt;/p&gt;
&lt;h4 id=&#34;localslackirc&#34;&gt;&lt;a href=&#34;https://github.com/ltworf/localslackirc&#34;&gt;localslackirc&lt;/a&gt; - gateway for Slack, running on localhost for one user&lt;/h4&gt;
&lt;p&gt;Message parsing performance was improved and several bug fixes were made.&lt;/p&gt;
&lt;h4 id=&#34;matrix2051&#34;&gt;&lt;a href=&#34;https://github.com/progval/matrix2051&#34;&gt;Matrix2051&lt;/a&gt; - IRC server backed by Matrix&lt;/h4&gt;
&lt;p&gt;A systemd unit is now available, support was added for m.room.redaction, WHOIS, CHATHISTORY LATEST, MSGREFTYPES=msgid ISUPPORT token alongside tons of other improvements.&lt;/p&gt;
&lt;h4 id=&#34;matterbridge&#34;&gt;&lt;a href=&#34;https://github.com/42wim/matterbridge&#34;&gt;matterbridge&lt;/a&gt; - bridges between a growing number of protocols&lt;/h4&gt;
&lt;p&gt;A problem with sending empty messages was fixed and substitution of the bot&amp;rsquo;s nick is now allowed when sending raw IRC commands.&lt;/p&gt;
&lt;h4 id=&#34;reliable-discord&#34;&gt;&lt;a href=&#34;https://github.com/mk-fg/reliable-discord-client-irc-daemon&#34;&gt;Reliable Discord-client IRC Daemon (rdircd)&lt;/a&gt; - personal discord-client to irc-server translation daemon&lt;/h4&gt;
&lt;p&gt;Support was added for deleting and editing the last sent message and optional TLS wrapping.&lt;/p&gt;
&lt;h4 id=&#34;teleirc&#34;&gt;&lt;a href=&#34;https://github.com/RITlug/teleirc&#34;&gt;teleirc&lt;/a&gt; – bridge to Telegram&lt;/h4&gt;
&lt;p&gt;mIRC formatting is now stripped and support for Telegram location sharing messages was added.&lt;/p&gt;
&lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt;
&lt;p&gt;Taking care of user accounts and channels among other things.&lt;/p&gt;
&lt;h4 id=&#34;anope&#34;&gt;&lt;a href=&#34;https://www.anope.org/&#34;&gt;Anope&lt;/a&gt; – highly modular set of services&lt;/h4&gt;
&lt;p&gt;Version 2.0.12 was released in April with account confirmation via the web panel and a regex_pcre2 module.&lt;/p&gt;
&lt;h4 id=&#34;atheme&#34;&gt;&lt;a href=&#34;https://atheme.github.io/&#34;&gt;Atheme&lt;/a&gt; - for large networks with high scalability requirements&lt;/h4&gt;
&lt;p&gt;Handling and workflow regarding flags was improved, hooks were added for adding and removing a certificate fingerprint and IPv6 support was added to DNS blacklist.&lt;/p&gt;
&lt;h4 id=&#34;dalek&#34;&gt;&lt;a href=&#34;https://github.com/DalekIRC/Dalek-Services&#34;&gt;DalekIRC Services&lt;/a&gt; - Services with UnrealIRCd &amp;amp; WordPress integration&lt;/h4&gt;
&lt;p&gt;This project was started by Valware in June 2021. It looks rather featureful at this point. The idea is to move away from service bots to server-side commands. A &lt;a href=&#34;https://github.com/DalekIRC/unreal-compat&#34;&gt;complementary module for UnrealIRCd&lt;/a&gt; is available.&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
    <item>
      <title>Tamperelaiset LibreOfficea rakentamassa vuonna 2022</title>
      <link>https://www.ilmarilauhakangas.fi/tamperelaiset_libreofficea_rakentamassa_vuonna_2022/</link>
      <pubDate>Tue, 03 Jan 2023 10:40:06 +0200</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/tamperelaiset_libreofficea_rakentamassa_vuonna_2022/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.libreoffice.org/&#34;&gt;LibreOffice&lt;/a&gt; on vapaa ja avoin toimisto-ohjelmisto, jonka kehittämiseen osallistuu sekä palkattuja työntekijöitä että vapaaehtoisia. Viime vuonna tekijöistä ennätysmäärä oli suomalaisia.&lt;/p&gt;
&lt;h3 id=&#34;tamperelaisten-avustajien-saavutuksia&#34;&gt;Tamperelaisten avustajien saavutuksia&lt;/h3&gt;
&lt;p&gt;Vuosi 2022 oli tamperelaisille hienoa aikaa. Mieli täynnä kirkkaita ajatuksia LibreOfficen avustamisesta he kulkivat pitkin poikin kotikaupunkiaan uudenkarheilla raitiovaunuilla.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Päivi Majarannan&lt;/strong&gt; ja &lt;strong&gt;Toni Pakkasen&lt;/strong&gt; vetämällä Tampereen yliopiston &amp;ldquo;Käytettävyyden arvioinnin menetelmät&amp;rdquo; -kurssilla arvioitiin LibreOfficen esitelmöintisovellus Impressin käytettävyyttä. &lt;strong&gt;Kaksikymmentä kuusi opiskelijaa&lt;/strong&gt; viidessä työryhmässä analysoi muun muassa diapohjien käsittelytapoja. Työn tulokset ovat LibreOfficen muotoilutiimin vetäjän Heiko Tietzen arvioitavana ja niistä julkaistaan myöhemmin yhteenveto.&lt;/p&gt;
&lt;p&gt;Aloite yhteistyöstä tuli Tuomas Hietalalta ja sen toivotaan jatkuvan tänä vuonna.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tuomas Hietala&lt;/strong&gt; paransi LibreOfficen suomennosta, laajensi sanastoa ja loi &lt;a href=&#34;https://wiki.documentfoundation.org/FI/Tyyliopas&#34;&gt;suomentajien tyylioppaan&lt;/a&gt; Fuugin säätiön &lt;a href=&#34;https://fuug.fi/2022/libreofficen-suomennoksen-tarkistamisen-ja-suomentamisen-tukemisen-tulokset/&#34;&gt;myöntämän apurahan&lt;/a&gt; tuella. Vapaaehtoispohjalta hän perehdytti suomentajia.&lt;/p&gt;
&lt;h3 id=&#34;ei-tamperelaisten-avustajien-saavutuksia&#34;&gt;Ei-tamperelaisten avustajien saavutuksia&lt;/h3&gt;
&lt;p&gt;Hallussani olevien tietojen mukaan alla luetellut henkilöt eivät ole tamperelaisia, mutta ovat silti työskennelleet kiitettävästi LibreOfficen menestyksen eteen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Laura Venieri&lt;/strong&gt; laajensi TDF:n wikissä olevaa dokumentaatiota &lt;a href=&#34;https://wiki.documentfoundation.org/Documentation/Calc_Functions&#34;&gt;Calcin funktioista&lt;/a&gt;. Hän keskittyi tilinpäätösanalyysiin liittyviin funktioihin.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Momoko&lt;/strong&gt; jatkoi bugien testaamista, mutta aloitti myös C++-kehittämisen tehden pari &lt;a href=&#34;https://wiki.documentfoundation.org/Development/EasyHacks&#34;&gt;easy hack&lt;/a&gt; -tehtävää.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jussi Pakkanen&lt;/strong&gt; jatkoi &lt;a href=&#34;https://nibblestew.blogspot.com/2022/02/compiling-libreoffice-with-meson-even.html&#34;&gt;kokeilua LibreOfficen ohjelmakoodin kääntämisestä Meson-järjestelmällä&lt;/a&gt; ja &lt;a href=&#34;https://nibblestew.blogspot.com/2022/09/looking-at-libreoffices-windows.html&#34;&gt;selvitti mahdollisuutta LibreOfficen Windows-asennusohjelman luomisen yksinkertaistamiseksi&lt;/a&gt;. Hän lupautui myös mentoriksi &lt;a href=&#34;https://www.outreachy.org/&#34;&gt;Outreachy-ohjelmaan&lt;/a&gt; yhdessä Marina Latinin kanssa. Outreachyn puitteissa kaksi palkattua harjoittelijaa jatkaa työtä Windowsin asennusohjelman parissa.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tor Lillqvist&lt;/strong&gt; (&lt;a href=&#34;https://www.collaboraoffice.com/&#34;&gt;Collabora&lt;/a&gt;) työskenteli erityisesti Collaboran &lt;a href=&#34;https://www.collaboraoffice.com/collabora-online/&#34;&gt;Online&lt;/a&gt;-, ja &lt;a href=&#34;https://apps.apple.com/us/app/collabora-office/id1440482071&#34;&gt;iOS&lt;/a&gt;-tuotteiden parissa. Työpöytäversion osalta hän muun muassa teki useita kirjasimiin ja PDF:ien upottamiseen liittyviä parannuksia, korjasi ongelmia HTML-tallennuksessa ja grafiikoiden ankkuroinnissa Writerin taulukoiden soluihin sekä teki ohjelmistokoodista siistimpää ja selkeämpää. Hän myös edisti &lt;a href=&#34;https://wiki.documentfoundation.org/Development/WASM&#34;&gt;WebAssembly-version&lt;/a&gt; kehitystä.&lt;/p&gt;
&lt;p&gt;Itse työskentelin &lt;a href=&#34;https://www.documentfoundation.org/&#34;&gt;TDF-säätiölle&lt;/a&gt; keskittyen vapaaehtoisten perehdyttämiseen. Tein vähintään alkuperehdytyksen 130:lle vapaaehtoiselle, joista suurin osa oli C++-kehittäjiä. Säätiölle rakentamani &lt;a href=&#34;https://www.documentfoundation.org/&#34;&gt;uusi verkkosivu&lt;/a&gt; julkaistiin. &lt;a href=&#34;https://www.youtube.com/watch?v=ncQL8VlnCVc&#34;&gt;Ylläpidin wikiä ja kehitin sinne uusia työkaluja&lt;/a&gt;, kehitin &lt;a href=&#34;https://help.libreoffice.org/&#34;&gt;ohjesysteemiä&lt;/a&gt;, kirjoitin &lt;a href=&#34;https://qa.blog.documentfoundation.org/&#34;&gt;laadunvarmistusblogiin&lt;/a&gt; yhteenvetoja sekä pidin lähes kuusikymmentä julkista etädemoa laadunvarmistuksesta. Hoidin Google Summer of Coden lisäksi nyt ensimmäistä kertaa myös Outreachy-mentorointiohjelman hallinnollisia tehtäviä. Olin mukana palkkaamassa kahta uutta työntekijää säätiöön. Vapaa-ajallani testailin bugeja.&lt;/p&gt;
</description>
      <category>LibreOffice-Suomi</category>
    </item>
    
    <item>
      <title>IRC technology news from the first half of 2022</title>
      <link>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_first_half_of_2022/</link>
      <pubDate>Wed, 06 Jul 2022 15:40:06 +0300</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_first_half_of_2022/</guid>
      <description>&lt;p&gt;Some cool stuff went down in the world of Internet Relay Chat during the past six months and we should take a look at it.&lt;/p&gt;
&lt;h3 id=&#34;irssi-is-back&#34;&gt;Irssi is back!&lt;/h3&gt;
&lt;p&gt;In the &lt;a href=&#34;https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2021/&#34;&gt;last news article&lt;/a&gt;, I mentioned that the development of the Irssi terminal client had slowed down and that there was an active fork. Since then, the changes from Nei’s fork were integrated upstream. The increased coordination lead to the &lt;a href=&#34;https://irssi.org/2022/06/12/irssi-1.4.1-released/&#34;&gt;release of Irssi version 1.4.1&lt;/a&gt; in June. Many new IRCv3 features became available.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.ircdriven.com/&#34;&gt;IRC Driven&lt;/a&gt;, a service that provides indexing for IRC networks is now out of beta. A recent feature is displaying channel logs on the website in real time.&lt;/p&gt;
&lt;h3 id=&#34;protocol-specifications&#34;&gt;Protocol specifications&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/IRCv3.svg&#34;
    alt=&#34;IRCv3 logo&#34; width=&#34;80&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;The &lt;a href=&#34;https://ircv3.net/specs/extensions/whox&#34;&gt;WHOX extension&lt;/a&gt; was documented, &lt;a href=&#34;https://ircv3.net/specs/extensions/bot-mode&#34;&gt;Bot Mode&lt;/a&gt; was ratified and drafts were published for &lt;a href=&#34;https://ircv3.net/specs/client-tags/channel-context&#34;&gt;channel-context client tag&lt;/a&gt; and &lt;a href=&#34;https://ircv3.net/specs/extensions/read-marker&#34;&gt;Read marker&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;documentation&#34;&gt;Documentation&lt;/h3&gt;
&lt;p&gt;RPL_WHOISSERVICE got documented in &lt;a href=&#34;https://defs.ircdocs.horse/&#34;&gt;IRC Definition Files&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://modern.ircdocs.horse/&#34;&gt;Modern IRC Client Protocol&lt;/a&gt; docs received numerous additions and improvements.&lt;/p&gt;
&lt;h3 id=&#34;mobile-clients&#34;&gt;Mobile clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/goguma.png&#34;
    alt=&#34;goguma screenshot&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;goguma screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;communi-for-sailfish&#34;&gt;&lt;a href=&#34;https://github.com/communi/communi-sailfish&#34;&gt;Communi for Sailfish&lt;/a&gt; - The first and foremost IRC client for Sailfish OS&lt;/h4&gt;
&lt;p&gt;Improvements were made to Sailfish OS platform compatibility.&lt;/p&gt;
&lt;h4 id=&#34;coreirc&#34;&gt;&lt;a href=&#34;https://coreirc.com/&#34;&gt;CoreIRC&lt;/a&gt; – Android client&lt;/h4&gt;
&lt;p&gt;Support was added for coloured nicknames in the chat and for hiding timestamps and away messages.&lt;/p&gt;
&lt;h4 id=&#34;goguma&#34;&gt;&lt;a href=&#34;https://sr.ht/~emersion/goguma/&#34;&gt;goguma&lt;/a&gt; - for mobile Linux and Android&lt;/h4&gt;
&lt;p&gt;Simon Ser launched a new mobile client which interestingly has support for mobile Linux and not just for Android. It intentionally skips representing server buffers, does not group conversations by network and sorts them by recent activity. It is aimed primarily for servers supporting recent IRCv3 extensions. It has special features for bouncer support and allows using push notifications with the soju bouncer, which reduces power consumption.&lt;/p&gt;
&lt;h4 id=&#34;irccloud&#34;&gt;&lt;a href=&#34;https://www.irccloud.com/&#34;&gt;IRCCloud&lt;/a&gt; - Connect to any IRC server out there, and even Slack workspaces&lt;/h4&gt;
&lt;p&gt;macOS Catalyst support for the iOS app was improved. The Android app got improvements to stability and more detailed WHOIS information. Both apps got support for pinning channels and conversations.&lt;/p&gt;
&lt;h3 id=&#34;web-clients&#34;&gt;Web clients&lt;/h3&gt;
&lt;p&gt;Many of these include support for persistent history, so there is some overlap with the bouncer category.&lt;/p&gt;
&lt;h4 id=&#34;convos&#34;&gt;&lt;a href=&#34;https://convos.chat/&#34;&gt;Convos&lt;/a&gt; - Mojolicious in the backend and Svelte in the frontend&lt;/h4&gt;
&lt;p&gt;Support was added for proxy authentication using a HTTP header and Paste plugin was resurrected.&lt;/p&gt;
&lt;h4 id=&#34;gamja&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/gamja&#34;&gt;gamja&lt;/a&gt; – a bare-bones web client&lt;/h4&gt;
&lt;p&gt;Support was added for read markers that synchronise the read/unread status of messages between clients shared by the same user connected to a server or a bouncer. Other updates include support for bot mode and channel-context and the addition of a settings dialog.&lt;/p&gt;
&lt;h4 id=&#34;glowing-bear&#34;&gt;&lt;a href=&#34;https://www.glowing-bear.org/&#34;&gt;Glowing Bear&lt;/a&gt; - WeeChat web frontend&lt;/h4&gt;
&lt;p&gt;Support was added for building the application with &lt;a href=&#34;https://tauri.app/&#34;&gt;Tauri&lt;/a&gt; toolkit in order to produce smaller binaries that use less memory. A plugin was added to play clips from Twitch.&lt;/p&gt;
&lt;h4 id=&#34;irc-hybrid-client&#34;&gt;&lt;a href=&#34;https://github.com/cotarr/irc-hybrid-client&#34;&gt;irc-hybrid-client&lt;/a&gt; – Single user hybrid client using JavaScript frontend and Node.js/Express backend&lt;/h4&gt;
&lt;p&gt;Support was added for using a socks5 proxy for server connections.&lt;/p&gt;
&lt;h4 id=&#34;kiwiirc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwiirc&#34;&gt;KiwiIRC&lt;/a&gt; – uses static files and supports theming and plugins (JavaScript)&lt;/h4&gt;
&lt;p&gt;Support was added for message-tags.&lt;/p&gt;
&lt;h4 id=&#34;the-lounge&#34;&gt;&lt;a href=&#34;https://thelounge.chat/&#34;&gt;The Lounge&lt;/a&gt; - modern web client utilising Node.js&lt;/h4&gt;
&lt;p&gt;A feature was added for muting channels, networks, and private messages. A context menu was added for inline channel names and the settings layout was redesigned.&lt;/p&gt;
&lt;h3 id=&#34;desktop-clients&#34;&gt;Desktop clients&lt;/h3&gt;
&lt;h4 id=&#34;adiirc&#34;&gt;&lt;a href=&#34;https://adiirc.com/&#34;&gt;AdiIRC&lt;/a&gt; – freeware client for Windows&lt;/h4&gt;
&lt;p&gt;Version 4.2 was released with better HiDPI support, UI improvements and an option to ignore consecutive timestamps.&lt;/p&gt;
&lt;h4 id=&#34;circe&#34;&gt;&lt;a href=&#34;https://github.com/jorgenschaefer/circe&#34;&gt;Circe&lt;/a&gt; - a client for IRC in Emacs&lt;/h4&gt;
&lt;p&gt;Version 2.12 was released in April with three year’s worth of improvements.&lt;/p&gt;
&lt;h4 id=&#34;erc&#34;&gt;&lt;a href=&#34;https://www.gnu.org/savannah-checkouts/gnu/emacs/erc.html&#34;&gt;ERC&lt;/a&gt; - an Emacs IRC client&lt;/h4&gt;
&lt;p&gt;Fixes and internal improvements include more robust handling of multiline input, ISUPPORT tokens and buffer naming.&lt;/p&gt;
&lt;h4 id=&#34;hexchat&#34;&gt;&lt;a href=&#34;https://hexchat.github.io/&#34;&gt;HexChat&lt;/a&gt; - client for Windows and UNIX-like operating systems&lt;/h4&gt;
&lt;p&gt;Various fixes went in, including better handling of passwords.&lt;/p&gt;
&lt;h4 id=&#34;icechat&#34;&gt;&lt;a href=&#34;https://www.icechat.net/&#34;&gt;IceChat&lt;/a&gt; – client for Windows&lt;/h4&gt;
&lt;p&gt;Versions 9.52 and 9.53 were released with some fixes.&lt;/p&gt;
&lt;h4 id=&#34;irken&#34;&gt;&lt;a href=&#34;https://github.com/dlowe-net/irken&#34;&gt;Irken&lt;/a&gt; – a small, modular client written in Tcl/Tk&lt;/h4&gt;
&lt;p&gt;Various under-the-hood fixes went in.&lt;/p&gt;
&lt;h4 id=&#34;konversation&#34;&gt;&lt;a href=&#34;https://konversation.kde.org/&#34;&gt;Konversation&lt;/a&gt; – KDE’s IRC client for Windows, Linux and BSDs&lt;/h4&gt;
&lt;p&gt;Window handling across different operating systems was made more robust and some notification issues were fixed.&lt;/p&gt;
&lt;h4 id=&#34;mirc&#34;&gt;&lt;a href=&#34;https://www.mirc.com/&#34;&gt;mIRC&lt;/a&gt; – 95 ‘til infinity (Windows-only)&lt;/h4&gt;
&lt;p&gt;Version 7.68 was released in April with support for strikethrough text, new server login authentication methods and an option to keep channels open on parting.&lt;/p&gt;
&lt;h4 id=&#34;polari&#34;&gt;&lt;a href=&#34;https://wiki.gnome.org/Apps/Polari&#34;&gt;Polari&lt;/a&gt; - GNOME’s client&lt;/h4&gt;
&lt;p&gt;Feedback for /commands was moved to a popover UI element and code was ported to comply with libadwaita used by GNOME 42.&lt;/p&gt;
&lt;h4 id=&#34;srain&#34;&gt;&lt;a href=&#34;https://srain.silverrainz.me/&#34;&gt;Srain&lt;/a&gt; – modern client built with GTK&lt;/h4&gt;
&lt;p&gt;Support was added for IRCv3 standard-replies, SASL EXTERNAL, invite-notify and server-time.&lt;/p&gt;
&lt;h4 id=&#34;thunderbird&#34;&gt;&lt;a href=&#34;https://www.thunderbird.net/&#34;&gt;Thunderbird&lt;/a&gt; – email client with chat support&lt;/h4&gt;
&lt;p&gt;Version 102.0 was released. Invitations to chat rooms will now prompt the user if they would like to join.&lt;/p&gt;
&lt;h3 id=&#34;terminal-clients&#34;&gt;Terminal clients&lt;/h3&gt;
&lt;h4 id=&#34;catgirl&#34;&gt;&lt;a href=&#34;https://git.causal.agency/catgirl/about/&#34;&gt;catgirl&lt;/a&gt; - TLS-only client&lt;/h4&gt;
&lt;p&gt;Line editing was reimplemented as a reusable library.&lt;/p&gt;
&lt;h4 id=&#34;glirc&#34;&gt;&lt;a href=&#34;https://github.com/glguy/irc-core&#34;&gt;glirc&lt;/a&gt; - Haskell library and console client&lt;/h4&gt;
&lt;p&gt;Hotkeys can now be assigned for specific windows on a server.&lt;/p&gt;
&lt;h4 id=&#34;kirc&#34;&gt;&lt;a href=&#34;https://mcpcpc.github.io/kirc&#34;&gt;kirc&lt;/a&gt; - a tiny client written in POSIX C99&lt;/h4&gt;
&lt;p&gt;An option was added for parsing multiple post-connection commands.&lt;/p&gt;
&lt;h4 id=&#34;senpai&#34;&gt;&lt;a href=&#34;https://sr.ht/~taiite/senpai/&#34;&gt;senpai&lt;/a&gt; - TUI client made for bouncers&lt;/h4&gt;
&lt;p&gt;Support was added for the soju extensions read and search, using socks5 proxies, channel-context and clicking on channel members to open a query with them. URL parsing performance was improved.&lt;/p&gt;
&lt;h4 id=&#34;swirc&#34;&gt;&lt;a href=&#34;https://www.nifty-networks.net/swirc/&#34;&gt;Swirc&lt;/a&gt; - lightweight ICB and IRC client&lt;/h4&gt;
&lt;p&gt;Additions include support for RPL_WHOISBOT, scrolling using the mouse and a /cap command for listing IRCv3 capabilities.&lt;/p&gt;
&lt;h4 id=&#34;rirc&#34;&gt;&lt;a href=&#34;https://rcr.io/rirc/&#34;&gt;rirc&lt;/a&gt; - a minimalistic irc client written in C&lt;/h4&gt;
&lt;p&gt;Some code cleanups and fixes were made.&lt;/p&gt;
&lt;h4 id=&#34;tiny&#34;&gt;&lt;a href=&#34;https://github.com/osa1/tiny&#34;&gt;tiny&lt;/a&gt; – client written in Rust&lt;/h4&gt;
&lt;p&gt;Code cleanups and stability improvements were made.&lt;/p&gt;
&lt;h4 id=&#34;weechat&#34;&gt;&lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; - the extensible chat client&lt;/h4&gt;
&lt;p&gt;Version 3.5 was released in March with /autojoin command and displaying of message tags, zstd compression in relay weechat protocol and trigger variables for message tags. Changes towards a future version include /item command for creating custom bar items and letter case conversion methods in evaluation of expressions.&lt;/p&gt;
&lt;h3 id=&#34;bouncers&#34;&gt;Bouncers&lt;/h3&gt;
&lt;p&gt;They stay online, so you don’t have to!&lt;/p&gt;
&lt;h4 id=&#34;pounce&#34;&gt;&lt;a href=&#34;https://git.causal.agency/pounce/about/&#34;&gt;pounce&lt;/a&gt; - multi-client, TLS-only IRC bouncer. Uses server-time extension to communicate with clients&lt;/h4&gt;
&lt;p&gt;Support was added for quitting pounce from clients and for editing configuration over IRC.&lt;/p&gt;
&lt;h4 id=&#34;soju&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/soju&#34;&gt;soju&lt;/a&gt; – multi-user bouncer&lt;/h4&gt;
&lt;p&gt;A new extension, read, was developed in soju and eventually published as an IRCv3 draft. Other new extensions are search for searching through server-side message history without downloading full logs, account-required for disallowing connection to a server without authentication and no-implicit-names for allowing clients to reduce some traffic that usually goes on when connecting to a server. Other additions include support for RPL_VISIBLEHOST, chghost, upstream echo-message capability and push notifications that the goguma mobile client benefits from as well as improved WHOIS forwarding.&lt;/p&gt;
&lt;h4 id=&#34;znc&#34;&gt;&lt;a href=&#34;https://wiki.znc.in/ZNC&#34;&gt;ZNC&lt;/a&gt; - an advanced bouncer&lt;/h4&gt;
&lt;p&gt;Some code cleanups and fixes were made.&lt;/p&gt;
&lt;h3 id=&#34;daemons&#34;&gt;Daemons&lt;/h3&gt;
&lt;h4 id=&#34;ergo&#34;&gt;&lt;a href=&#34;https://ergo.chat/&#34;&gt;Ergo&lt;/a&gt; - combining the features of an ircd, a services framework, and a bouncer&lt;/h4&gt;
&lt;p&gt;Additions include enhancements to moderation tools, support for read-marker, ACCEPT command for users to control who is allowed to message them and NS SAVERIFY for operators to manually complete an account verification.&lt;/p&gt;
&lt;h4 id=&#34;gossip&#34;&gt;&lt;a href=&#34;https://github.com/mitchr/gossip&#34;&gt;gossip&lt;/a&gt; - server written in Go&lt;/h4&gt;
&lt;p&gt;This new server has been in active development since 2020 and seems to have decent spec coverage by now. Docs could use some expanding, but it’s early days anyway.&lt;/p&gt;
&lt;h4 id=&#34;inspircd&#34;&gt;&lt;a href=&#34;https://www.inspircd.org/&#34;&gt;InspIRCd&lt;/a&gt; - stable, high-performance and modular&lt;/h4&gt;
&lt;p&gt;Additions include support for the IRCv3 bot tag, an option to require presence in a common channel in order to be invited to other channels, extbanformat method for normalising extbans, support for automatically expiring the override user mode, improved WHO, a new account system and a rewritten logging system with JSON as a new format option.&lt;/p&gt;
&lt;h4 id=&#34;ircd-hybrid&#34;&gt;&lt;a href=&#34;https://www.ircd-hybrid.org/&#34;&gt;Ircd-hybrid&lt;/a&gt; - a lightweight, high-performance daemon&lt;/h4&gt;
&lt;p&gt;KNOCK can now be used on private channels and an extban was added to prevent the use of KNOCK. The optional founder q and admin a channel prefix modes were implemented as well as server-side channel mode locking MLOCK.&lt;/p&gt;
&lt;h4 id=&#34;solanum&#34;&gt;&lt;a href=&#34;https://solanum.chat/&#34;&gt;Solanum&lt;/a&gt; - an IRCd for unified networks&lt;/h4&gt;
&lt;p&gt;Various fixes and cleanups were made.&lt;/p&gt;
&lt;h4 id=&#34;unrealircd&#34;&gt;&lt;a href=&#34;https://www.unrealircd.org/&#34;&gt;UnrealIRCd&lt;/a&gt; - the most widely deployed IRCd&lt;/h4&gt;
&lt;p&gt;Additions include support for logging server notices to a channel, improvements to the command line tool and its Windows support, support for IRC over UNIX sockets, expanded functionality of security groups and mask items, support for automatically oping a user upon connect based on conditions including certificate fingerprint authentication, improvements to JSON logging, support for channel-context and for linking servers via UNIX domain sockets.&lt;/p&gt;
&lt;h3 id=&#34;bots&#34;&gt;Bots&lt;/h3&gt;
&lt;p&gt;This and the next section has been curated with programming language diversity in mind.&lt;/p&gt;
&lt;h4 id=&#34;botto&#34;&gt;&lt;a href=&#34;https://github.com/strong-code/botto&#34;&gt;Botto&lt;/a&gt; (Node.js)&lt;/h4&gt;
&lt;p&gt;Additions include an optional cooldown period to observers and commands, ability to handle channel invites, rejoin functionality and many improvements to commands.&lt;/p&gt;
&lt;h4 id=&#34;calculon&#34;&gt;&lt;a href=&#34;https://github.com/c-cube/calculon&#34;&gt;Calculon&lt;/a&gt; – library for writing bots and a collection of plugins (OCaml)&lt;/h4&gt;
&lt;p&gt;The main storage was switched to SQLite and it is now possible to make the bot join multiple channels.&lt;/p&gt;
&lt;h4 id=&#34;cbot&#34;&gt;&lt;a href=&#34;https://github.com/brenns10/cbot&#34;&gt;cbot&lt;/a&gt; - bot with features implemented as dynamically loaded plugins (C)&lt;/h4&gt;
&lt;p&gt;Bot aliases can now be used and a birthday plugin was added.&lt;/p&gt;
&lt;h4 id=&#34;codybot&#34;&gt;&lt;a href=&#34;https://github.com/esselfe/codybot&#34;&gt;Codybot&lt;/a&gt; – a Linux bot with C compilation and shell access (C)&lt;/h4&gt;
&lt;p&gt;Additions include commands for the date and cal programs.&lt;/p&gt;
&lt;h4 id=&#34;eggdrop&#34;&gt;&lt;a href=&#34;https://eggheads.org/&#34;&gt;Eggdrop&lt;/a&gt; - the oldest bot still in active development (C/Tcl)&lt;/h4&gt;
&lt;p&gt;Named timers and account tracking were added.&lt;/p&gt;
&lt;h4 id=&#34;irccd&#34;&gt;&lt;a href=&#34;http://projects.malikania.fr/irccd/&#34;&gt;irccd&lt;/a&gt; - allows both C and JavaScript plugins (C)&lt;/h4&gt;
&lt;p&gt;Version 4.0.0 was released in February with the codebase rewritten from C++ to C.&lt;/p&gt;
&lt;h4 id=&#34;jrobo&#34;&gt;&lt;a href=&#34;https://github.com/BullShark/JRobo&#34;&gt;JRobo&lt;/a&gt; - advanced bot with tons of features (Java)&lt;/h4&gt;
&lt;p&gt;Many code cleanups and smaller fixes were made.&lt;/p&gt;
&lt;h4 id=&#34;kameloso&#34;&gt;&lt;a href=&#34;https://github.com/zorael/kameloso&#34;&gt;kameloso&lt;/a&gt; (D)&lt;/h4&gt;
&lt;p&gt;A big plumbing renovation was completed. Windows setup was made easier. The Help plugin was made more flexible and a generic Timer plugin was added. The Twitch plugin received many improvements, including experimental support for polls.&lt;/p&gt;
&lt;h4 id=&#34;limnoria&#34;&gt;&lt;a href=&#34;https://limnoria.net/&#34;&gt;Limnoria&lt;/a&gt; - robust, full-featured, and user/programmer-friendly bot (Python)&lt;/h4&gt;
&lt;p&gt;The replace function of the Format plugin was made more convenient and support was added for channel-context. Improvements were made to the new Geography plugin that provides facts such as timezones.&lt;/p&gt;
&lt;h4 id=&#34;nibblrjr&#34;&gt;&lt;a href=&#34;https://nibblr.pw/&#34;&gt;Nibblrjr&lt;/a&gt; - bot framework for creating custom behaviour dynamically (Node.js)&lt;/h4&gt;
&lt;p&gt;Additions include automatic config reloading, a remote IO console viewer and debugger, expanded API for events and SQLite, webhooks and many new APIs.&lt;/p&gt;
&lt;h4 id=&#34;pbot&#34;&gt;&lt;a href=&#34;https://github.com/pragma-/pbot/&#34;&gt;PBot&lt;/a&gt; – a pragmatic bot (Perl)&lt;/h4&gt;
&lt;p&gt;Many improvements were made to the Virtual Machine applet that allows safe execution of arbitrary commands and code.&lt;/p&gt;
&lt;h4 id=&#34;skybot&#34;&gt;&lt;a href=&#34;https://github.com/rmmh/skybot&#34;&gt;Skybot&lt;/a&gt; - multithreaded and multinetwork bot (Python)&lt;/h4&gt;
&lt;p&gt;The Wolfram Alpha plugin got support for conversation API.&lt;/p&gt;
&lt;h4 id=&#34;sopel&#34;&gt;&lt;a href=&#34;https://sopel.chat/&#34;&gt;Sopel&lt;/a&gt; - lightweight, easy-to-use utility bot (Python)&lt;/h4&gt;
&lt;p&gt;Many improvements to plugins were made and the whole IRC backend was converted to use asyncio module.&lt;/p&gt;
&lt;h3 id=&#34;libraries-frameworks-and-utilities&#34;&gt;Libraries, frameworks and utilities&lt;/h3&gt;
&lt;h4 id=&#34;chathistorysync&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/chathistorysync&#34;&gt;chathistorysync&lt;/a&gt; - a synchronization tool for IRC chat history&lt;/h4&gt;
&lt;p&gt;Simon Ser created this handy utility for syncing a local chat log directory with a remote IRC server. The server needs to support the draft/chathistory IRCv3 extension. It supports incremental fetching of logs.&lt;/p&gt;
&lt;h4 id=&#34;deno-irc&#34;&gt;&lt;a href=&#34;https://github.com/jeromeludmann/deno-irc&#34;&gt;Deno-irc&lt;/a&gt; - client protocol module for Deno (JavaScript)&lt;/h4&gt;
&lt;p&gt;Additions include message tag parsing, ability to subscribe to multiple events and plugins for isupport, mode, names, nicklist, chantypes, mode aliases, away, ping timeout and oper state.&lt;/p&gt;
&lt;h4 id=&#34;dialect&#34;&gt;&lt;a href=&#34;https://github.com/zorael/dialect&#34;&gt;Dialect&lt;/a&gt; - IRC parsing library (D)&lt;/h4&gt;
&lt;p&gt;IRC string parsing was improved regarding special cases.&lt;/p&gt;
&lt;h4 id=&#34;girc&#34;&gt;&lt;a href=&#34;https://github.com/lrstanley/girc&#34;&gt;girc&lt;/a&gt; - a flexible library (Go)&lt;/h4&gt;
&lt;p&gt;Various code cleanups and fixes were made.&lt;/p&gt;
&lt;h4 id=&#34;goirc&#34;&gt;&lt;a href=&#34;https://github.com/fluffle/goirc&#34;&gt;goirc&lt;/a&gt; - Event-based stateful client framework (Go)&lt;/h4&gt;
&lt;p&gt;Support was added for capability negotiation.&lt;/p&gt;
&lt;h4 id=&#34;hii&#34;&gt;&lt;a href=&#34;https://github.com/nmeum/hii&#34;&gt;hii&lt;/a&gt; – a file-based client inspired by ii&lt;/h4&gt;
&lt;p&gt;Client certificate handling was made more robust and the installation now makes use of Go modules.&lt;/p&gt;
&lt;h4 id=&#34;irc-framework&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/irc-framework&#34;&gt;irc-framework&lt;/a&gt; – for bots and full clients (Node.js)&lt;/h4&gt;
&lt;p&gt;Channel name handling in events was made more robust and support for numerics was expanded.&lt;/p&gt;
&lt;h4 id=&#34;irc-go&#34;&gt;&lt;a href=&#34;https://github.com/ergochat/irc-go&#34;&gt;irc-go&lt;/a&gt; - libraries to help with IRC development (Go)&lt;/h4&gt;
&lt;p&gt;Parsing of name!user@host IRC messages was rewritten, numeric definitions were expanded and a synchronous GetLabeledResponse API was added.&lt;/p&gt;
&lt;h4 id=&#34;irckit&#34;&gt;&lt;a href=&#34;https://github.com/FuelRats/IRCKit&#34;&gt;IRCKit&lt;/a&gt; - an asynchronous pure Swift library using the Apple NIO framework&lt;/h4&gt;
&lt;p&gt;Support was added for mode change events.&lt;/p&gt;
&lt;h4 id=&#34;ircrobots&#34;&gt;&lt;a href=&#34;https://github.com/jesopo/ircrobots&#34;&gt;ircrobots&lt;/a&gt; Asynchronous bare-bones IRC bot framework (Python)&lt;/h4&gt;
&lt;p&gt;TLS support was improved.&lt;/p&gt;
&lt;h4 id=&#34;ircstates&#34;&gt;&lt;a href=&#34;https://github.com/jesopo/ircstates&#34;&gt;ircstates&lt;/a&gt; - sans-I/O IRC session state parsing library (Python)&lt;/h4&gt;
&lt;p&gt;Casemapping performance was improved.&lt;/p&gt;
&lt;h4 id=&#34;netirc&#34;&gt;&lt;a href=&#34;https://github.com/fredimachado/NetIRC&#34;&gt;NetIRC&lt;/a&gt; - simple Portable client library targeting .NETStandard 2.0 and .NET Framework 4.6.1 (C#)&lt;/h4&gt;
&lt;p&gt;Handling of nicknames and PRIVMSG was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;pircbotx&#34;&gt;&lt;a href=&#34;https://github.com/pircbotx/pircbotx&#34;&gt;PircBotX&lt;/a&gt; – library with IRCv3 CAP negotiation support (Java)&lt;/h4&gt;
&lt;p&gt;IRCv3 tags are now added to all events.&lt;/p&gt;
&lt;h4 id=&#34;pydle&#34;&gt;&lt;a href=&#34;https://github.com/Shizmob/pydle&#34;&gt;Pydle&lt;/a&gt; – IRCv3-compliant library (Python)&lt;/h4&gt;
&lt;p&gt;Many internal renovations were made.&lt;/p&gt;
&lt;h4 id=&#34;superseriousstats&#34;&gt;&lt;a href=&#34;https://sss.dutnie.nl/&#34;&gt;superseriousstats&lt;/a&gt; - a fast and efficient program to create statistics out of various types of IRC chat logs (PHP)&lt;/h4&gt;
&lt;p&gt;Additions include an XXL stats page option for very large channels and a dark theme.&lt;/p&gt;
&lt;h3 id=&#34;bridges&#34;&gt;Bridges&lt;/h3&gt;
&lt;h4 id=&#34;heisenbridge&#34;&gt;&lt;a href=&#34;https://github.com/hifi/heisenbridge&#34;&gt;Heisenbridge&lt;/a&gt; - a bouncer-style Matrix IRC bridge&lt;/h4&gt;
&lt;p&gt;IRC noise can now be forwarded to network room, support was added for relaymsg, znc.in/self-message and twitch.tv/membership. Users now have a STATUS command for checking what is connected.&lt;/p&gt;
&lt;h4 id=&#34;localslackirc&#34;&gt;&lt;a href=&#34;https://github.com/ltworf/localslackirc&#34;&gt;localslackirc&lt;/a&gt; - gateway for Slack, running on localhost for one user&lt;/h4&gt;
&lt;p&gt;The parser for Slack messages was rewritten, threads are now mapped to IRC channels and yelling can be ignored.&lt;/p&gt;
&lt;h4 id=&#34;matrix2051&#34;&gt;&lt;a href=&#34;https://github.com/progval/matrix2051&#34;&gt;Matrix2051&lt;/a&gt; - IRC server backed by Matrix&lt;/h4&gt;
&lt;p&gt;Started in 2021, this is Val’s take on enabling IRC clients to join Matrix servers.&lt;/p&gt;
&lt;h4 id=&#34;matterbridge&#34;&gt;&lt;a href=&#34;https://github.com/42wim/matterbridge&#34;&gt;matterbridge&lt;/a&gt; - bridges between a growing number of protocols&lt;/h4&gt;
&lt;p&gt;Support was added for client certificates.&lt;/p&gt;
&lt;h4 id=&#34;teleirc&#34;&gt;&lt;a href=&#34;https://github.com/RITlug/teleirc&#34;&gt;teleirc&lt;/a&gt; – bridge to Telegram&lt;/h4&gt;
&lt;p&gt;IRC users now see Telegram replies and Imgur can now be used with an account and an album.&lt;/p&gt;
&lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt;
&lt;p&gt;Taking care of user accounts and channels among other things.&lt;/p&gt;
&lt;h4 id=&#34;anope&#34;&gt;&lt;a href=&#34;https://www.anope.org/&#34;&gt;Anope&lt;/a&gt; – highly modular set of services&lt;/h4&gt;
&lt;p&gt;Version 2.0.11 was released in April with fixes to ldap and email encoding as well as fixes specific to UnrealIRCd and ircd-hybrid.&lt;/p&gt;
&lt;h4 id=&#34;atheme&#34;&gt;&lt;a href=&#34;https://atheme.github.io/&#34;&gt;Atheme&lt;/a&gt; - for large networks with high scalability requirements&lt;/h4&gt;
&lt;p&gt;Hooks can now force account expiration, last seen times for logged-in nicks are no longer saved to reduce space used by the database and help was added for nickserv/loginnolimit.&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
    <item>
      <title>Suomalaiset LibreOfficea rakentamassa vuonna 2021</title>
      <link>https://www.ilmarilauhakangas.fi/suomalaiset_libreofficea_rakentamassa_vuonna_2021/</link>
      <pubDate>Wed, 19 Jan 2022 10:40:06 +0200</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/suomalaiset_libreofficea_rakentamassa_vuonna_2021/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.libreoffice.org/&#34;&gt;LibreOffice&lt;/a&gt; on vapaa ja avoin toimisto-ohjelmisto, jonka kehittämiseen osallistuu sekä palkattuja työntekijöitä että vapaaehtoisia. Viime aikoina suomalaisten avustajien määrä on ollut kasvussa. Tästä on kiittäminen Kansalaisareenan ja Kirkkopalveluiden ylläpitämää &lt;a href=&#34;https://vapaaehtoistyo.fi/&#34;&gt;vapaaehtoistyö.fi&lt;/a&gt;-sivustoa.&lt;/p&gt;
&lt;h3 id=&#34;ohjatut-työtehtävät&#34;&gt;Ohjatut työtehtävät&lt;/h3&gt;
&lt;p&gt;Vapaaehtoistyö.fi-sivustolla olevat tehtävät:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://vapaaehtoistyo.fi/fi/task/c07ae83b1b00fec7ce6651e867d24bf06c9b28d7&#34;&gt;C++-kehittäminen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://vapaaehtoistyo.fi/fi/task/92e31986fa60a8f11cd891c53f19095dccb0e322&#34;&gt;käyttäjäkokemusmuotoilu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://vapaaehtoistyo.fi/fi/task/15594702b91ac4d1404e81f4b783950821c0e855&#34;&gt;laadunvarmistus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://vapaaehtoistyo.fi/fi/task/941bb6c5842c2695ad9299edc77d8c4f79e94a1e&#34;&gt;ohjeiden kirjoittaminen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://vapaaehtoistyo.fi/fi/task/4caae29a70d0e1c9b749c37e6ed1f84ac7e0f643&#34;&gt;suomentaminen&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Näistä suomentamiseen perehdyttää Tuomas Hietala ja muut hoidan minä. Yhteyttä voi ottaa myös suoraan &lt;a href=&#34;mailto:ilmari.lauhakangas@libreoffice.org&#34;&gt;sähköpostilla&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;lukion-oppimateriaali&#34;&gt;Lukion oppimateriaali&lt;/h3&gt;
&lt;p&gt;LibreOffice on käytössä &lt;a href=&#34;https://www.ylioppilastutkinto.fi/&#34;&gt;digitaalisissa ylioppilaskirjoituksissa&lt;/a&gt;, ja tämän myötä kaikissa lukioissa. &lt;strong&gt;Mikkelin kaupungin liikelaitos &lt;a href=&#34;https://otavia.fi/&#34;&gt;Otavia&lt;/a&gt;&lt;/strong&gt; lisäsi YouTube-kanavalleen &lt;a href=&#34;https://www.youtube.com/playlist?list=PLg1FifoSrPwdU-ETNVpKhsvh3arf243ll&#34;&gt;soittolistan&lt;/a&gt;, jossa on iso joukko oppimateriaalia Calcista.&lt;/p&gt;
&lt;h3 id=&#34;harri-pitkänen-sai-open-world-hero--tunnustuksen&#34;&gt;Harri Pitkänen sai Open World Hero -tunnustuksen&lt;/h3&gt;
&lt;p&gt;COSS ry &lt;a href=&#34;https://coss.fi/uutiset/harri-pitkanen-valittiin-open-world-heroksi-kehittamansa-voikon-ansiosta/&#34;&gt;valitsi Harri Pitkäsen vuoden 2021 Open World Heroksi&lt;/a&gt; kehittämänsä Voikon ansiosta. Voikkoa hyödyntävät &lt;a href=&#34;https://www.puimula.org/htp/ooo/libreoffice-voikko.html&#34;&gt;LibreOfficen kielityökalut&lt;/a&gt; ovat varmasti tuttuja useimmille suomalaisille LibreOfficen käyttäjille. Harri myös vastasi LibreOfficen käyttöliittymän suomentamisesta monen vuoden ajan.&lt;/p&gt;
&lt;h3 id=&#34;avustajien-saavutuksia&#34;&gt;Avustajien saavutuksia&lt;/h3&gt;
&lt;p&gt;LibreOfficen suomalaisten tai Suomessa toimivien avustajien määrän kasvaessa on mielekästä tehdä yksityiskohtainen katsaus heidän aikaansaannoksiinsa.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Laura Venieri&lt;/strong&gt; laajensi TDF:n wikissä olevaa dokumentaatiota &lt;a href=&#34;https://wiki.documentfoundation.org/Documentation/Calc_Functions&#34;&gt;Calcin funktioista&lt;/a&gt;. Hän keskittyi tilinpäätösanalyysiin liittyviin funktioihin.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Niina&lt;/strong&gt; teki laadunvarmistusta testaten bugeja muun muassa Writerin luetteloissa, kuvien ankkuroinnissa ja Calcin tyyleissä. Hän aloitti perehtymisen edistyneeseen &lt;a href=&#34;https://wiki.documentfoundation.org/QA/Bibisect&#34;&gt;binary bisect&lt;/a&gt; -menetelmään.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Henrik Palomäki&lt;/strong&gt; testasi bugeja ja suoritti useita syväanalyysejä binary bisect -menetelmällä. Hän siirtyi lopulta testaamisesta C++-kehittämiseen ja teki joukon &lt;a href=&#34;https://wiki.documentfoundation.org/Development/EasyHacks&#34;&gt;easy hack&lt;/a&gt; -tehtäviä liittyen ohjelmakoodin siistimiseen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jari Pirhonen&lt;/strong&gt; aloitti loppuvuodesta laadunvarmistuksen parissa testaten bugeja PDF-tiedostojen avaamisessa ja Math-ohjelman käyttöliittymässä.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Momoko&lt;/strong&gt; toi kaivattua lisävoimaa macOS-bugien testaamiseen. Hän on suorittanut jo lukuisia binary bisect -tutkimuksia.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Noora&lt;/strong&gt; testasi bugeja mm. Writerin muotoiluun, perumiseen ja kehyksiin liittyen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Natalia&lt;/strong&gt; teki pari easy hack -tehtävää parantaen Calcin ulkoasua solujen kohdistuksen osalta.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Laurynas&lt;/strong&gt; testasi bugeja mm. Writerin lomakkeissa ja perumisessa.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jussi Pakkanen&lt;/strong&gt; jatkoi loppuvuodesta &lt;a href=&#34;https://nibblestew.blogspot.com/2022/01/portability-is-not-sufficient-for.html&#34;&gt;kokeilua LibreOfficen ohjelmakoodin kääntämisestä Meson-järjestelmällä&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tuomas Hietala&lt;/strong&gt; paransi LibreOfficen suomennosta ja laajensi sanastoa &lt;a href=&#34;https://fuug.fi/2021/libreofficen-suomennoksen-tarkastamisen-ja-sanaston-laajentamisen-tulokset/&#34;&gt;Fuugin säätiön myöntämän apurahan&lt;/a&gt; tuella. Vapaaehtoispohjalta hän perehdytti suomentajia, suomensi käyttöliittymän uusia tekstejä ja paransi TDF:n wikissä olevia &lt;a href=&#34;https://wiki.documentfoundation.org/FI/Lokalisointi&#34;&gt;lokalisointiohjeita&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tor Lillqvist&lt;/strong&gt; (&lt;a href=&#34;https://www.collaboraoffice.com/&#34;&gt;Collabora&lt;/a&gt;) työskenteli erityisesti macOS-tuen ja Collaboran &lt;a href=&#34;https://www.collaboraoffice.com/collabora-online/&#34;&gt;Online&lt;/a&gt;-, &lt;a href=&#34;https://play.google.com/store/apps/details?id=com.collabora.libreoffice&#34;&gt;Android&lt;/a&gt;- ja &lt;a href=&#34;https://apps.apple.com/us/app/collabora-office/id1440482071&#34;&gt;iOS&lt;/a&gt;-tuotteiden parissa. Työpöytäversion osalta hän mm. toteutti tuen sisäisille Firebird-tietokannoille Mac App Storessa myytävään &lt;a href=&#34;https://apps.apple.com/us/app/libreoffice-vanilla/id921923693&#34;&gt;LibreOffice Vanilla&lt;/a&gt; -ohjelmaan, paransi Calcin rivikorkeuden säätöä ja teki ohjelmistokoodista siistimpää ja selkeämpää.&lt;/p&gt;
&lt;p&gt;Itse työskentelin &lt;a href=&#34;https://www.documentfoundation.org/&#34;&gt;TDF-säätiölle&lt;/a&gt; keskittyen vapaaehtoisten perehdyttämiseen. Tein vähintään alkuperehdytyksen yli 120:lle vapaaehtoiselle, joista suurin osa oli C++-kehittäjiä. Lisäksi rakensin uusia verkkosivuja säätiölle ja LibreOfficelle (toistaiseksi julkaisematta), ylläpidin wikiä ja kehitin sinne uusia työkaluja, kehitin &lt;a href=&#34;https://help.libreoffice.org/&#34;&gt;ohjesysteemiä&lt;/a&gt;, kirjoitin &lt;a href=&#34;https://qa.blog.documentfoundation.org/&#34;&gt;laadunvarmistusblogiin&lt;/a&gt; yhteenvetoja ja TDF:n blogiin pari katsausta sekä pidin parisenkymmentä julkista etädemoa laadunvarmistuksesta. Vapaa-ajallani testailin bugeja.&lt;/p&gt;
</description>
      <category>LibreOffice-Suomi</category>
    </item>
    
    <item>
      <title>IRC technology news from the second half of 2021</title>
      <link>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2021/</link>
      <pubDate>Sat, 08 Jan 2022 15:40:06 +0300</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2021/</guid>
      <description>&lt;p&gt;As we continue to irc our way through the apocalypse, let’s look at the happenings in the ecosystem during the second half of 2021.&lt;/p&gt;
&lt;h3 id=&#34;babys-first-limnoria-plugin-and-other-notable-world-events&#34;&gt;Baby’s first Limnoria plugin and other notable world events&lt;/h3&gt;
&lt;p&gt;I have been using a custom bot to welcome newcomers to the various &lt;a href=&#34;https://wiki.documentfoundation.org/Website/IRC&#34;&gt;LibreOffice contributor channels&lt;/a&gt;. I wanted to make it more maintainable, so I reimplemented it as &lt;a href=&#34;https://github.com/ilmari-lauhakangas/limnoria-plugins-libreoffice&#34;&gt;a Limnoria plugin&lt;/a&gt;. Thanks to Val for the support, it was fun to write it!&lt;/p&gt;
&lt;p&gt;Sourcehut folks launched &lt;a href=&#34;https://sourcehut.org/blog/2021-11-29-announcing-the-chat.sr.ht-public-beta/&#34;&gt;an IRC bouncer service&lt;/a&gt; for the paying users of their software forge. One point of the endeavour is to drive improvements in the whole IRC ecosystem.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.ircdriven.com/&#34;&gt;IRC Driven&lt;/a&gt;, a site indexing IRC networks was relaunched. The site was originally created in 2006 and it provides statistics for a curated selection of IRC networks.&lt;/p&gt;
&lt;h3 id=&#34;protocol-specifications&#34;&gt;Protocol specifications&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/IRCv3.svg&#34;
    alt=&#34;IRCv3 logo&#34; width=&#34;80&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;The IRCv3 Working Group published &lt;a href=&#34;https://ircv3.net/2021/11/17/spec-round-up&#34;&gt;a spec round-up&lt;/a&gt; in November 2021, including new drafts for WebSocket, Client batches, Account registration and Extended monitor. You can now &lt;a href=&#34;https://mastodon.social/@ircv3&#34;&gt;follow the WG on Fediverse&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;documentation&#34;&gt;Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://defs.ircdocs.horse/&#34;&gt;IRC Definition Files&lt;/a&gt; got clarifications to chanmodes.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://modern.ircdocs.horse/&#34;&gt;Modern IRC Client Protocol&lt;/a&gt; received numerous additions and improvements from many contributors after Val from Limnoria was made editor. Val reports that the docs now cover nearly all meaningful parts from the RFCs.&lt;/p&gt;
&lt;h3 id=&#34;mobile-clients&#34;&gt;Mobile clients&lt;/h3&gt;
&lt;h4 id=&#34;colloquy&#34;&gt;&lt;a href=&#34;https://github.com/colloquy/colloquy&#34;&gt;Colloquy&lt;/a&gt; - an advanced IRC, &lt;a href=&#34;https://en.wikipedia.org/wiki/SILC_%28protocol%29&#34;&gt;SILC&lt;/a&gt; &amp;amp; &lt;a href=&#34;https://en.wikipedia.org/wiki/Internet_Citizen%27s_Band&#34;&gt;ICB&lt;/a&gt; client for macOS and iOS&lt;/h4&gt;
&lt;p&gt;Capability negotiation was optimised and some smaller fixes were made.&lt;/p&gt;
&lt;h4 id=&#34;communi-for-sailfish&#34;&gt;&lt;a href=&#34;https://github.com/communi/communi-sailfish&#34;&gt;Communi for Sailfish&lt;/a&gt; - The first and foremost IRC client for Sailfish OS&lt;/h4&gt;
&lt;p&gt;Many code cleanups were made and build instructions were added.&lt;/p&gt;
&lt;h4 id=&#34;coreirc&#34;&gt;&lt;a href=&#34;https://coreirc.com/&#34;&gt;CoreIRC&lt;/a&gt; – Android client&lt;/h4&gt;
&lt;p&gt;Compatibility with Ergo ircd was improved, eight colour schemes were added, sixteen character set options were added to the server configuration screen and message log storage functionality was added.&lt;/p&gt;
&lt;h4 id=&#34;irccloud&#34;&gt;&lt;a href=&#34;https://www.irccloud.com/&#34;&gt;IRCCloud&lt;/a&gt; - Connect to any IRC server out there, and even Slack workspaces&lt;/h4&gt;
&lt;p&gt;The iOS app got smarter regarding background tasks and progress was made on the experimental support for macOS Catalyst. The Android app got support for Android 12 and improvements to stability.&lt;/p&gt;
&lt;h4 id=&#34;palaver&#34;&gt;&lt;a href=&#34;https://palaverapp.com/&#34;&gt;Palaver&lt;/a&gt; - advanced client for iPhone and iPad&lt;/h4&gt;
&lt;p&gt;A release was made with bug fixes and minor usability improvements.&lt;/p&gt;
&lt;h3 id=&#34;web-clients&#34;&gt;Web clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/gamja.png&#34;
    alt=&#34;gamja screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;gamja screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Many of these include support for persistent history, so there is some overlap with the bouncer category.&lt;/p&gt;
&lt;h4 id=&#34;convos&#34;&gt;&lt;a href=&#34;https://convos.chat/&#34;&gt;Convos&lt;/a&gt; - Mojolicious in the backend and Svelte in the frontend&lt;/h4&gt;
&lt;p&gt;Additions include handling of irc:// links, support for raw messages, /away command, progress bar for uploads, file management in frontend, IRC colours and text formatting and many UI improvements.&lt;/p&gt;
&lt;h4 id=&#34;gamja&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/gamja&#34;&gt;gamja&lt;/a&gt; – a bare-bones web client&lt;/h4&gt;
&lt;p&gt;Lots of activity and two beta releases for 1.0.0. Additions include commands /whowas, /list and /away, improved /query, support for MONITOR, chghost, websocket, extended-join, account-notify, WHOX, SASL EXTERNAL, draft/extended-monitor, draft/account-registration with a UI to register and verify accounts, support for irc:// links, auto-joining channels upon reconnect and allowing bouncers to customise their shown name by setting NETWORK in ISUPPORT.&lt;/p&gt;
&lt;h4 id=&#34;irc-hybrid-client&#34;&gt;&lt;a href=&#34;https://github.com/cotarr/irc-hybrid-client&#34;&gt;irc-hybrid-client&lt;/a&gt; – Single user hybrid client using JavaScript frontend and Node.js/Express backend&lt;/h4&gt;
&lt;p&gt;Public development started in April 2021. There is support for Redis as session store and an authorization middleware.&lt;/p&gt;
&lt;h4 id=&#34;kiwiirc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwiirc&#34;&gt;KiwiIRC&lt;/a&gt; – uses static files and supports theming and plugins (JavaScript)&lt;/h4&gt;
&lt;p&gt;Version 1.6.0 was released in November. Message input box was made user-friendlier, channel list behaviour on desktop and mobile widths was improved among many other UI improvements.&lt;/p&gt;
&lt;h4 id=&#34;the-lounge&#34;&gt;&lt;a href=&#34;https://thelounge.chat/&#34;&gt;The Lounge&lt;/a&gt; - modern web client utilising Node.js&lt;/h4&gt;
&lt;p&gt;Version 4.3.0 was released in November. New stuff during the half-year period include accessibility improvements, /umode and /kickban commands, optimised handling of modes based on ISUPPORT and better touch control support&lt;/p&gt;
&lt;h3 id=&#34;desktop-clients&#34;&gt;Desktop clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/grumpychat.png&#34;
    alt=&#34;GrumpyChat screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;GrumpyChat screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;adiirc&#34;&gt;&lt;a href=&#34;https://adiirc.com/&#34;&gt;AdiIRC&lt;/a&gt; – freeware client for Windows&lt;/h4&gt;
&lt;p&gt;Version 4.1 was released with additions such as a new editor for scripts and customisations, support for UTF8ONLY token and many plugin API and scripting improvements.&lt;/p&gt;
&lt;h4 id=&#34;grumpychat&#34;&gt;&lt;a href=&#34;https://github.com/grumpy-irc/grumpy&#34;&gt;GrumpyChat&lt;/a&gt; - modern, yet oldschool client with distributed core, written in C++&lt;/h4&gt;
&lt;p&gt;Support was added for logging and identities.&lt;/p&gt;
&lt;h4 id=&#34;erc&#34;&gt;&lt;a href=&#34;https://www.gnu.org/savannah-checkouts/gnu/emacs/erc.html&#34;&gt;ERC&lt;/a&gt; - an Emacs IRC client&lt;/h4&gt;
&lt;p&gt;Versions 5.4 and 5.4.1 were released with additions such as asynchronous reconnection, improved nick highlighting, TLS improvements, convenience commands /opme, /deopme and /wii (whois with idle time) and an erc-bug command for reporting ERC bugs.&lt;/p&gt;
&lt;h4 id=&#34;hexchat&#34;&gt;&lt;a href=&#34;https://hexchat.github.io/&#34;&gt;HexChat&lt;/a&gt; - client for Windows and UNIX-like operating systems&lt;/h4&gt;
&lt;p&gt;Version 2.16.0 was released in October with &lt;a href=&#34;https://hexchat.github.io/news/2.16.0.html&#34;&gt;a call for maintainers&lt;/a&gt;. Fixes went into mode support, URI parsing and the build system. An addon for handling notices and server notices was added and oper and whois addons were updated with expanded network and ircd support.&lt;/p&gt;
&lt;h4 id=&#34;icechat&#34;&gt;&lt;a href=&#34;https://www.icechat.net/&#34;&gt;IceChat&lt;/a&gt; – client for Windows&lt;/h4&gt;
&lt;p&gt;Version 9.51 was released in July adding a Strict Transport Security policy, a channel list export button and several fixes.&lt;/p&gt;
&lt;h4 id=&#34;iridium&#34;&gt;&lt;a href=&#34;https://github.com/avojak/iridium&#34;&gt;Iridium&lt;/a&gt; – a native Linux client built in Vala and GTK for elementary OS&lt;/h4&gt;
&lt;p&gt;Many releases were made adding support for SASL authentication, system colour theme detection, integration with OS notifications and a redesigned headerbar.&lt;/p&gt;
&lt;h4 id=&#34;irken&#34;&gt;&lt;a href=&#34;https://github.com/dlowe-net/irken&#34;&gt;Irken&lt;/a&gt; – a small, modular client written in Tcl/Tk&lt;/h4&gt;
&lt;p&gt;Fixes were made to tag parsing and text colour handling.&lt;/p&gt;
&lt;h4 id=&#34;konversation&#34;&gt;&lt;a href=&#34;https://konversation.kde.org/&#34;&gt;Konversation&lt;/a&gt; – KDE’s IRC client for Windows, Linux and BSDs&lt;/h4&gt;
&lt;p&gt;Wayland support was improved and many code cleanups were made.&lt;/p&gt;
&lt;h4 id=&#34;mirc&#34;&gt;&lt;a href=&#34;https://www.mirc.com/&#34;&gt;mIRC&lt;/a&gt; – 95 ‘til infinity (Windows-only)&lt;/h4&gt;
&lt;p&gt;Version 7.67 was released in October with UI improvements and many fixes.&lt;/p&gt;
&lt;h4 id=&#34;polari&#34;&gt;&lt;a href=&#34;https://wiki.gnome.org/Apps/Polari&#34;&gt;Polari&lt;/a&gt; - GNOME’s client&lt;/h4&gt;
&lt;p&gt;More GTK4 work was merged amid lots of UI improvements and code cleanups.&lt;/p&gt;
&lt;h4 id=&#34;srain&#34;&gt;&lt;a href=&#34;https://srain.im/&#34;&gt;Srain&lt;/a&gt; – modern client built with GTK&lt;/h4&gt;
&lt;p&gt;Support was added for ISUPPORT parsing, UTF8ONLY, RPL_UMODEIS and an emoji button was added.&lt;/p&gt;
&lt;h4 id=&#34;textual&#34;&gt;&lt;a href=&#34;https://www.codeux.com/textual/&#34;&gt;Textual&lt;/a&gt; – client for macOS&lt;/h4&gt;
&lt;p&gt;Version 7.2.1 was release with Apple Silicon support.&lt;/p&gt;
&lt;h4 id=&#34;thunderbird&#34;&gt;&lt;a href=&#34;https://www.thunderbird.net/&#34;&gt;Thunderbird&lt;/a&gt; – email client with chat support&lt;/h4&gt;
&lt;p&gt;Version 91.0 and multiple point releases were made. Changes include replacing image-based emoticons with Unicode and several fixes to the chat module.&lt;/p&gt;
&lt;h3 id=&#34;terminal-clients&#34;&gt;Terminal clients&lt;/h3&gt;
&lt;h4 id=&#34;catgirl&#34;&gt;&lt;a href=&#34;https://git.causal.agency/catgirl/about/&#34;&gt;catgirl&lt;/a&gt; - TLS-only client&lt;/h4&gt;
&lt;p&gt;Improvements were made to TLS, OpenBSD and FreeBSD support and message tag handling.&lt;/p&gt;
&lt;h4 id=&#34;glirc&#34;&gt;&lt;a href=&#34;https://github.com/glguy/irc-core&#34;&gt;glirc&lt;/a&gt; - Haskell library and console client&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;a href=&#34;https://en.wikipedia.org/wiki/Salted_Challenge_Response_Authentication_Mechanism&#34;&gt;SASL SCRAM&lt;/a&gt; (salted auth), ECDH-X25591-CHALLENGE and certificate IP address &lt;a href=&#34;https://en.wikipedia.org/wiki/Subject_Alternative_Name&#34;&gt;SANs&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;neirssi&#34;&gt;&lt;a href=&#34;https://ailin-nemui.github.io/irssi/index.html&#34;&gt;Neırssi&lt;/a&gt; - a client mostly compatible with Irssi&lt;/h4&gt;
&lt;p&gt;While Irssi development has been slow, Ailin Nemui has a fork that is quite active. Improvements and fixes went into text rendering, TLS, performance of autojoin, the docs, /SERVER ADD and autocompletion among lots of maintenance work.&lt;/p&gt;
&lt;h4 id=&#34;senpai&#34;&gt;&lt;a href=&#34;https://sr.ht/~taiite/senpai/&#34;&gt;senpai&lt;/a&gt; - TUI client made for bouncers&lt;/h4&gt;
&lt;p&gt;Lots of work went in the client during this period. Additions include automatically joining channels on start, more fine-grained unread/highlight state, a vertical member list on channels, improved CHATHISTORY support, showing of mode changes, support for specifying an external password command to avoid storing passwords in plaintext, /(un)ban, /kick, /invite and /query commands, implementation of away-notify, support for soju.im/bouncer-networks and showing the current channel topic at the top of the timeline.&lt;/p&gt;
&lt;h4 id=&#34;swirc&#34;&gt;&lt;a href=&#34;https://www.nifty-networks.net/swirc/&#34;&gt;Swirc&lt;/a&gt; - lightweight ICB and IRC client&lt;/h4&gt;
&lt;p&gt;Additions include forcing UTF-8 on Windows, /(un)ignore commands and a TLS server.&lt;/p&gt;
&lt;h4 id=&#34;rirc&#34;&gt;&lt;a href=&#34;https://rcr.io/rirc/&#34;&gt;rirc&lt;/a&gt; - a minimalistic irc client written in C&lt;/h4&gt;
&lt;p&gt;Many fixes and code cleanups were made, IRCv3 cap key=val parsing was implemented, support was added for SASL PLAIN and EXTERNAL authentication and startup options were added for user mode as well as TLS and SASL.&lt;/p&gt;
&lt;h4 id=&#34;tiny&#34;&gt;&lt;a href=&#34;https://github.com/osa1/tiny&#34;&gt;tiny&lt;/a&gt; – client written in Rust&lt;/h4&gt;
&lt;p&gt;/quit command was added, key bindings were made configurable and handling of text formatting (colours etc.) was improved.&lt;/p&gt;
&lt;h4 id=&#34;weechat&#34;&gt;&lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; - the extensible chat client&lt;/h4&gt;
&lt;p&gt;Three releases were made with plenty of new goodies: plugin to support ”user is typing”, all IRC capabilities enabled by default (if supported), support was added for IRCv3.2 SASL auth, message-tags and setname as well as FAIL/WARN/NOTE messages.&lt;/p&gt;
&lt;h3 id=&#34;bouncers&#34;&gt;Bouncers&lt;/h3&gt;
&lt;p&gt;They stay online, so you don’t have to!&lt;/p&gt;
&lt;h4 id=&#34;kiwibnc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwibnc&#34;&gt;KiwiBNC&lt;/a&gt; – for one person or 10,000 people (Node.js)&lt;/h4&gt;
&lt;p&gt;bnc help command output was improved and an internals extension was added to help debugging and development.&lt;/p&gt;
&lt;h4 id=&#34;pounce&#34;&gt;&lt;a href=&#34;https://git.causal.agency/pounce/about/&#34;&gt;pounce&lt;/a&gt; - multi-client, TLS-only IRC bouncer. Uses server-time extension to communicate with clients&lt;/h4&gt;
&lt;p&gt;TLS was improved, docs were expanded and OpenBSD and FreeBSD support got some love.&lt;/p&gt;
&lt;h4 id=&#34;quassel-irc&#34;&gt;&lt;a href=&#34;https://quassel-irc.org/&#34;&gt;Quassel IRC&lt;/a&gt; - cross-platform, distributed IRC client with a central core&lt;/h4&gt;
&lt;p&gt;Version 0.14.0 was released on 1 Jan 2022, while it was nearly three years since the previous one, so let’s celebrate it in this 2021 article. Changes in the half-year period include fixing a security issue with LDAP usernames and fixing macOS build failures.&lt;/p&gt;
&lt;h4 id=&#34;soju&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/soju&#34;&gt;soju&lt;/a&gt; – multi-user bouncer&lt;/h4&gt;
&lt;p&gt;A very active period for soju leading up to Sourcehut’s hosted bouncer service. Support was added for PostgreSQL databases, instrumentation via Prometheus, a new ”server status” BouncerServ command, many new configuration options and protocol features MONITOR, WHOX, ELIST, account-notify, CHATHISTORY LATEST, draft/event-playback and draft/extended-monitor.&lt;/p&gt;
&lt;h4 id=&#34;znc&#34;&gt;&lt;a href=&#34;https://wiki.znc.in/ZNC&#34;&gt;ZNC&lt;/a&gt; - an advanced bouncer&lt;/h4&gt;
&lt;p&gt;More deny options were added and SASL message handling was made more robust.&lt;/p&gt;
&lt;h3 id=&#34;daemons&#34;&gt;Daemons&lt;/h3&gt;
&lt;h4 id=&#34;ergo&#34;&gt;&lt;a href=&#34;https://ergo.chat/&#34;&gt;Ergo&lt;/a&gt; - combining the features of an ircd, a services framework, and a bouncer&lt;/h4&gt;
&lt;p&gt;Additions include user-initiated password resets via email, implementation for draft/extended-monitor, support for SCRAM-SHA-256 SASL auth (even though &lt;a href=&#34;https://gist.github.com/slingamn/3f2fed196df5ef14d1316a1ffa9d59f8&#34;&gt;not endorsed&lt;/a&gt;), upgraded draft/register capability, service management files for OpenSolaris/Illumos and an s6 init script.&lt;/p&gt;
&lt;h4 id=&#34;inspircd&#34;&gt;&lt;a href=&#34;https://www.inspircd.org/&#34;&gt;InspIRCd&lt;/a&gt; - stable, high-performance and modular&lt;/h4&gt;
&lt;p&gt;An inspircd.org/account-id tag was added for exposing immutable &lt;a href=&#34;https://github.com/ircv3/ircv3-ideas/issues/61&#34;&gt;account identifiers&lt;/a&gt; to users, connectban got delaying options and TLS received several improvements. Version 4 saw several alpha releases with additions such as /CHECK for finding users by an ident or real name mask, a regex_pcre2 module and FRHOST S2S command to change the real hostname of a remote user.&lt;/p&gt;
&lt;h4 id=&#34;ircd-hybrid&#34;&gt;&lt;a href=&#34;https://www.ircd-hybrid.org/&#34;&gt;Ircd-hybrid&lt;/a&gt; - a lightweight, high-performance daemon&lt;/h4&gt;
&lt;p&gt;User name handling was made more robust and many bug fixes were made.&lt;/p&gt;
&lt;h4 id=&#34;ngircd&#34;&gt;&lt;a href=&#34;https://ngircd.barton.de/&#34;&gt;ngIRCd&lt;/a&gt; – lightweight IRC server&lt;/h4&gt;
&lt;p&gt;A quick start guide was added.&lt;/p&gt;
&lt;h4 id=&#34;solanum&#34;&gt;&lt;a href=&#34;https://solanum.chat/&#34;&gt;Solanum&lt;/a&gt; - an IRCd for unified networks&lt;/h4&gt;
&lt;p&gt;A tutorial for connecting servers and services was added, registration messages were made configurable, SNO_BANNED server notice mask was added and mask support was improved.&lt;/p&gt;
&lt;h4 id=&#34;unrealircd&#34;&gt;&lt;a href=&#34;https://www.unrealircd.org/&#34;&gt;UnrealIRCd&lt;/a&gt; - the most widely deployed IRCd&lt;/h4&gt;
&lt;p&gt;Version 6.0.0 was released with a redone logging system, named extended bans, implementations for MONITOR, draft/extended-monitor, invite-notify and setname, GeoIP support and configurable WHOIS output.&lt;/p&gt;
&lt;h3 id=&#34;bots&#34;&gt;Bots&lt;/h3&gt;
&lt;p&gt;This and the next section has been curated with programming language diversity in mind.&lt;/p&gt;
&lt;h4 id=&#34;bot-irc&#34;&gt;&lt;a href=&#34;https://github.com/gryphonshafer/Bot-IRC&#34;&gt;Bot::IRC&lt;/a&gt; (Perl)&lt;/h4&gt;
&lt;p&gt;A ”disconnect” parameter trigger option was added.&lt;/p&gt;
&lt;h4 id=&#34;botto&#34;&gt;&lt;a href=&#34;https://github.com/strong-code/botto&#34;&gt;Botto&lt;/a&gt; (Node.js)&lt;/h4&gt;
&lt;p&gt;The codebase was updated to use es6 classes, a markov command to generate text via a gpt-2 based synthesiser was added and the commands received many improvements.&lt;/p&gt;
&lt;h4 id=&#34;calculon&#34;&gt;&lt;a href=&#34;https://github.com/c-cube/calculon&#34;&gt;Calculon&lt;/a&gt; – library for writing bots and a collection of plugins (OCaml)&lt;/h4&gt;
&lt;p&gt;A custom command was added.&lt;/p&gt;
&lt;h4 id=&#34;cardinal&#34;&gt;&lt;a href=&#34;https://github.com/JohnMaguire/Cardinal&#34;&gt;Cardinal&lt;/a&gt; – bot built with Twisted library with a focus on ease of development (Python)&lt;/h4&gt;
&lt;p&gt;Various smaller improvements to the plugins were made.&lt;/p&gt;
&lt;h4 id=&#34;cbot&#34;&gt;&lt;a href=&#34;https://github.com/brenns10/cbot&#34;&gt;cbot&lt;/a&gt; - bot with features implemented as dynamically loaded plugins (C)&lt;/h4&gt;
&lt;p&gt;An air quality (aqi) plugin and a logging system were added&lt;/p&gt;
&lt;h4 id=&#34;cloudbot&#34;&gt;&lt;a href=&#34;https://github.com/TotallyNotRobots/CloudBot&#34;&gt;CloudBot&lt;/a&gt; – a simple, fast and expandable bot (Python)&lt;/h4&gt;
&lt;p&gt;Various fixes and improvements to the plugins were made.&lt;/p&gt;
&lt;h4 id=&#34;eggdrop&#34;&gt;&lt;a href=&#34;https://eggheads.org/&#34;&gt;Eggdrop&lt;/a&gt; - the oldest bot still in active development (C/Tcl)&lt;/h4&gt;
&lt;p&gt;Version 1.9.2 RC1 was released with full CAP 302 support, implementations for monitor, cap-notify and SASL 3.2 as well as new Tcl commands (monitor, isircbot, server list) and a new Twitch bind.&lt;/p&gt;
&lt;h4 id=&#34;greboid-irc-bot&#34;&gt;&lt;a href=&#34;https://github.com/greboid/irc-bot&#34;&gt;greboid’s irc-bot&lt;/a&gt; (Go)&lt;/h4&gt;
&lt;p&gt;Support was added for &lt;a href=&#34;https://ircv3.net/specs/extensions/bot-mode&#34;&gt;bot mode&lt;/a&gt; and draft/relaymsg.&lt;/p&gt;
&lt;h4 id=&#34;irccd&#34;&gt;&lt;a href=&#34;http://projects.malikania.fr/irccd/&#34;&gt;irccd&lt;/a&gt; - allows both C++ and JavaScript plugins (C++)&lt;/h4&gt;
&lt;p&gt;This bot uses &lt;a href=&#34;https://duktape.org/&#34;&gt;Duktape&lt;/a&gt; as the JavaScript engine. Many fixes were made and BSD support and POSIX conformance was improved&lt;/p&gt;
&lt;h4 id=&#34;jrobo&#34;&gt;&lt;a href=&#34;https://github.com/BullShark/JRobo&#34;&gt;JRobo&lt;/a&gt; - advanced bot with tons of features (Java)&lt;/h4&gt;
&lt;p&gt;A very active half year period for this bot with additions such as a greet command, weather command changed to use OpenWeatherMap amid lots of improvements to the commands and cleanups of the codebase.&lt;/p&gt;
&lt;h4 id=&#34;kameloso&#34;&gt;&lt;a href=&#34;https://github.com/zorael/kameloso&#34;&gt;kameloso&lt;/a&gt; (D)&lt;/h4&gt;
&lt;p&gt;Work went mostly into Twitch-related functionality.&lt;/p&gt;
&lt;h4 id=&#34;limnoria&#34;&gt;&lt;a href=&#34;https://limnoria.net/&#34;&gt;Limnoria&lt;/a&gt; - robust, full-featured, and user/programmer-friendly bot (Python)&lt;/h4&gt;
&lt;p&gt;Hostmask parsing was improved, SQLAlchemy was removed from the dependencies and many fixes and doc improvements were made.&lt;/p&gt;
&lt;h4 id=&#34;maiden&#34;&gt;&lt;a href=&#34;https://github.com/Shirakumo/maiden&#34;&gt;Maiden&lt;/a&gt; - an extensible and highly modular bot framework (Common Lisp)&lt;/h4&gt;
&lt;p&gt;The weather API was changed to use OpenWeatherMap.&lt;/p&gt;
&lt;h4 id=&#34;pbot&#34;&gt;&lt;a href=&#34;https://github.com/pragma-/pbot/&#34;&gt;PBot&lt;/a&gt; – a pragmatic bot (Perl)&lt;/h4&gt;
&lt;p&gt;It was a veritable ”Summer of IRC” for this bot with extensive improvements to the docs and code. Additions include a Wiktionary applet (&lt;a href=&#34;https://github.com/pragma-/pbot/blob/master/doc/Applets.md&#34;&gt;applets&lt;/a&gt; are external command line programs/scripts), a Wolfram|Alpha plugin, RunCommand plugin to run system commands (recommended to be used through locked-down factoids), a usershow command to show user metadata, GetUrl plugin to retrieve text contents of a URL and a qrpn module for evaluating expressions written in Reverse Polish notation with units.&lt;/p&gt;
&lt;h4 id=&#34;pybot&#34;&gt;&lt;a href=&#34;https://github.com/hlmtre/pybot&#34;&gt;Pybot&lt;/a&gt; – an extensible, modular, configurable, and multi-threaded bot (Python)&lt;/h4&gt;
&lt;p&gt;A ”quick dirty add command” module was added to teach the bot simple actions.&lt;/p&gt;
&lt;h4 id=&#34;scala-irc-bot&#34;&gt;&lt;a href=&#34;https://github.com/CO2-Codes/Scala-IRC-bot&#34;&gt;Scala-IRC-bot&lt;/a&gt; -  PircBotX based bot (Scala)&lt;/h4&gt;
&lt;p&gt;The codebase was migrated to Scala 3 and a spam-list functionality was added to the link listener.&lt;/p&gt;
&lt;h4 id=&#34;skybot&#34;&gt;&lt;a href=&#34;https://github.com/rmmh/skybot&#34;&gt;Skybot&lt;/a&gt; - multithreaded and multinetwork bot (Python)&lt;/h4&gt;
&lt;p&gt;The Twitter plugin was improved and more languages were added to the eval plugin.&lt;/p&gt;
&lt;h4 id=&#34;sopel&#34;&gt;&lt;a href=&#34;https://sopel.chat/&#34;&gt;Sopel&lt;/a&gt; - lightweight, easy-to-use utility bot (Python)&lt;/h4&gt;
&lt;p&gt;UTF-8 locale is now detected on Windows, docs were expanded and many improvements were made to the platform plugins (reddit, wikipedia).&lt;/p&gt;
&lt;h4 id=&#34;valeyard&#34;&gt;&lt;a href=&#34;https://github.com/ValwareIRC/Valeyard&#34;&gt;Valeyard&lt;/a&gt; - link IRC with SQL databases (PHP)&lt;/h4&gt;
&lt;p&gt;A module was added to look up the ISP of a user.&lt;/p&gt;
&lt;h4 id=&#34;yetibot&#34;&gt;&lt;a href=&#34;https://yetibot.com/&#34;&gt;Yetibot&lt;/a&gt; - extreme chatops bot for Slack and IRC (Clojure)&lt;/h4&gt;
&lt;p&gt;Some fixes were made and tests were added.&lt;/p&gt;
&lt;h3 id=&#34;libraries-frameworks-and-utilities&#34;&gt;Libraries, frameworks and utilities&lt;/h3&gt;
&lt;h4 id=&#34;blur&#34;&gt;&lt;a href=&#34;https://github.com/mkroman/blur&#34;&gt;Blur&lt;/a&gt; - event-driven IRC-framework (Ruby)&lt;/h4&gt;
&lt;p&gt;Nick change handling was improved.&lt;/p&gt;
&lt;h4 id=&#34;communi&#34;&gt;&lt;a href=&#34;https://communi.github.io/&#34;&gt;Communi&lt;/a&gt; - framework written with Qt (C++)&lt;/h4&gt;
&lt;p&gt;Qt 6 support was added, CAP 302 support was improved and capability validation can now be skipped.&lt;/p&gt;
&lt;h4 id=&#34;deno-irc&#34;&gt;&lt;a href=&#34;https://github.com/jeromeludmann/deno-irc&#34;&gt;Deno-irc&lt;/a&gt; - client protocol module for Deno (JavaScript)&lt;/h4&gt;
&lt;p&gt;TLS connections are now supported.&lt;/p&gt;
&lt;h4 id=&#34;dialect&#34;&gt;&lt;a href=&#34;https://github.com/zorael/dialect&#34;&gt;Dialect&lt;/a&gt; - IRC parsing library (D)&lt;/h4&gt;
&lt;p&gt;Support was added for Solanum IRCd servers.&lt;/p&gt;
&lt;h4 id=&#34;go-ircevent&#34;&gt;&lt;a href=&#34;https://github.com/thoj/go-ircevent&#34;&gt;go-ircevent&lt;/a&gt; - event based client library&lt;/h4&gt;
&lt;p&gt;Support was added for SASL EXTERNAL and SOCKS proxy (allows connecting over Tor).&lt;/p&gt;
&lt;h4 id=&#34;jaraco-irc&#34;&gt;&lt;a href=&#34;https://github.com/jaraco/irc&#34;&gt;irc&lt;/a&gt; – a full-featured library (Python)&lt;/h4&gt;
&lt;p&gt;NOTICE commands are now supported.&lt;/p&gt;
&lt;h4 id=&#34;irccat&#34;&gt;&lt;a href=&#34;https://github.com/irccloud/irccat&#34;&gt;irccat&lt;/a&gt; - send events to channels from scripts and other applications (Go)&lt;/h4&gt;
&lt;p&gt;Handling of HTTP encodings was improved and setting real name was fixed. It also benefited from the improvements to go-ircevent library.&lt;/p&gt;
&lt;h4 id=&#34;raku-irc-client&#34;&gt;&lt;a href=&#34;https://github.com/raku-community-modules/IRC-Client&#34;&gt;IRC::Client&lt;/a&gt; - Extendable Internet Relay Chat client (Raku)&lt;/h4&gt;
&lt;p&gt;The codebase was modernised, documentation was updated and support was added for TOPIC.&lt;/p&gt;
&lt;h4 id=&#34;cminor-irc-client&#34;&gt;&lt;a href=&#34;https://github.com/stwalkerster/ircclient&#34;&gt;ircclient&lt;/a&gt; (C#)&lt;/h4&gt;
&lt;p&gt;Some fixes were made and documentation was updated.&lt;/p&gt;
&lt;h4 id=&#34;ircdotnet&#34;&gt;&lt;a href=&#34;https://ircdotnet.github.io/IrcDotNet/&#34;&gt;IRC.NET&lt;/a&gt; - asynchronous bare-bones IRC bot framework (C#)&lt;/h4&gt;
&lt;p&gt;Support was added for capability negotiation, message tags and WHOX.&lt;/p&gt;
&lt;h4 id=&#34;irc-framework&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/irc-framework&#34;&gt;irc-framework&lt;/a&gt; – for bots and full clients (Node.js)&lt;/h4&gt;
&lt;p&gt;Websocket protocol is now supported with a fallback and SASL is handled better.&lt;/p&gt;
&lt;h4 id=&#34;irckit&#34;&gt;&lt;a href=&#34;https://github.com/FuelRats/IRCKit&#34;&gt;IRCKit&lt;/a&gt; - an asynchronous pure Swift library using the Apple NIO framework&lt;/h4&gt;
&lt;p&gt;Support was added for draft/reply.&lt;/p&gt;
&lt;h4 id=&#34;ircrobots&#34;&gt;&lt;a href=&#34;https://github.com/jesopo/ircrobots&#34;&gt;ircrobots&lt;/a&gt; Asynchronous bare-bones IRC bot framework (Python)&lt;/h4&gt;
&lt;p&gt;SASL handling was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;ircstates&#34;&gt;&lt;a href=&#34;https://github.com/jesopo/ircstates&#34;&gt;ircstates&lt;/a&gt; - sans-I/O IRC session state parsing library (Python)&lt;/h4&gt;
&lt;p&gt;Functionality was added to record when a user was first seen and when they joined.&lt;/p&gt;
&lt;h4 id=&#34;pircbotx&#34;&gt;&lt;a href=&#34;https://github.com/pircbotx/pircbotx&#34;&gt;PircBotX&lt;/a&gt; – library with IRCv3 CAP negotiation support (Java)&lt;/h4&gt;
&lt;p&gt;Support for quiet lists was added.&lt;/p&gt;
&lt;h4 id=&#34;pydle&#34;&gt;&lt;a href=&#34;https://github.com/Shizmob/pydle&#34;&gt;Pydle&lt;/a&gt; – IRCv3-compliant library (Python)&lt;/h4&gt;
&lt;p&gt;RplWhoisHostSupport was enabled and irccat support was fixed.&lt;/p&gt;
&lt;h4 id=&#34;pylink&#34;&gt;&lt;a href=&#34;https://github.com/jlu5/PyLink&#34;&gt;PyLink&lt;/a&gt; - multi-network IRC Services &amp;amp; server-side relayer&lt;/h4&gt;
&lt;p&gt;UnrealIRCd support was improved.&lt;/p&gt;
&lt;h4 id=&#34;superseriousstats&#34;&gt;&lt;a href=&#34;https://sss.dutnie.nl/&#34;&gt;superseriousstats&lt;/a&gt; - a fast and efficient program to create statistics out of various types of IRC chat logs (PHP)&lt;/h4&gt;
&lt;p&gt;Various fixes and improvements were made.&lt;/p&gt;
&lt;h3 id=&#34;bridges&#34;&gt;Bridges&lt;/h3&gt;
&lt;h4 id=&#34;heisenbridge&#34;&gt;&lt;a href=&#34;https://github.com/hifi/heisenbridge&#34;&gt;Heisenbridge&lt;/a&gt; - a bouncer-style Matrix IRC bridge&lt;/h4&gt;
&lt;p&gt;Public development of this bridge started in April 2021 and the first stable release was made in August. The aim is to provide a solution that is not disruptive to IRC users. Despite its young age, it has a wealth of features, good spec support and is performant with thousands of users. In addition to the bouncer mode, it offers a relaybot mode where a single authorized Matrix user manages the bot.&lt;/p&gt;
&lt;h4 id=&#34;localslackirc&#34;&gt;&lt;a href=&#34;https://github.com/ltworf/localslackirc&#34;&gt;localslackirc&lt;/a&gt; - gateway for Slack, running on localhost for one user&lt;/h4&gt;
&lt;p&gt;URL handling was improved and an /annoy command was added to annoy people, showing oneself as typing when they are.&lt;/p&gt;
&lt;h4 id=&#34;matterbridge&#34;&gt;&lt;a href=&#34;https://github.com/42wim/matterbridge&#34;&gt;matterbridge&lt;/a&gt; - bridges between a growing number of protocols&lt;/h4&gt;
&lt;p&gt;UserName and RealName options and binding to IP were added for IRC.&lt;/p&gt;
&lt;h4 id=&#34;teleirc&#34;&gt;&lt;a href=&#34;https://github.com/RITlug/teleirc&#34;&gt;teleirc&lt;/a&gt; – bridge to Telegram&lt;/h4&gt;
&lt;p&gt;Additions include handling of IRC emotes, topics and nick changes.&lt;/p&gt;
&lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt;
&lt;p&gt;Taking care of user accounts and channels among other things.&lt;/p&gt;
&lt;h4 id=&#34;anope&#34;&gt;&lt;a href=&#34;https://www.anope.org/&#34;&gt;Anope&lt;/a&gt; – highly modular set of services&lt;/h4&gt;
&lt;p&gt;Version 2.0.10 was released in August and changes after that include improvements to InspIRCd support.&lt;/p&gt;
&lt;h4 id=&#34;atheme&#34;&gt;&lt;a href=&#34;https://atheme.github.io/&#34;&gt;Atheme&lt;/a&gt; - for large networks with high scalability requirements&lt;/h4&gt;
&lt;p&gt;Additions include configurable length for generated passwords, a fix for confirming an account that had its email changed while unconfirmed and more robust validation of nicknames and handling of SASL.&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
    <item>
      <title>IRC technology news from the first half of 2021</title>
      <link>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_first_half_of_2021/</link>
      <pubDate>Sat, 10 Jul 2021 15:40:06 +0300</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_first_half_of_2021/</guid>
      <description>&lt;p&gt;&lt;em&gt;This article is dedicated to the Finnish rap group &lt;a href=&#34;https://www.facebook.com/lyomattomat&#34;&gt;Lyömättömät&lt;/a&gt;, who use IRC to interact with the audience of their national radio show.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Let&amp;rsquo;s look at the happenings in the IRC ecosystem during the first half of 2021.&lt;/p&gt;
&lt;h3 id=&#34;palaver--ergo&#34;&gt;Palaver ❤️ Ergo&lt;/h3&gt;
&lt;p&gt;A cool collaboration story during this period is &lt;a href=&#34;https://palaverapp.com/blog/ergo-chat&#34;&gt;Palaver iOS app working with Ergo daemon&lt;/a&gt; (formerly known as Oragono) in order to build a new standard on push notifications for IRC (Ergo issues &lt;a href=&#34;https://github.com/ergochat/ergo/issues/1527&#34;&gt;1527&lt;/a&gt; and &lt;a href=&#34;https://github.com/ergochat/ergo/issues/1626&#34;&gt;1626&lt;/a&gt; discuss the topic). &lt;a href=&#34;https://ergo.chat/&#34;&gt;Ergo&lt;/a&gt; now offers a network intended for production use. The network provides always-on, chat history and multiclient functionality out of the box, without the need to set up your own bouncer. It also supports relaying messages to channels on other networks, implementing the still unpublished RELAYMSG spec.&lt;/p&gt;
&lt;h3 id=&#34;protocol-specifications&#34;&gt;Protocol specifications&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/IRCv3.svg&#34;
    alt=&#34;IRCv3 logo&#34; width=&#34;80&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;&lt;a href=&#34;https://ircv3.net/specs/extensions/utf8-only&#34;&gt;UTF8ONLY ISUPPORT token&lt;/a&gt; defines a way for servers to advertise that they only allow UTF-8 on their network.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/ircv3/ircv3-specifications/pull/450&#34;&gt;CHATHISTORY TARGETS&lt;/a&gt; allows listing direct message conversations.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://ircv3.net/specs/extensions/bot-mode&#34;&gt;Bot Mode&lt;/a&gt; lets clients mark themselves as bots and lets other clients see them as bots.&lt;/p&gt;
&lt;h3 id=&#34;documentation&#34;&gt;Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://defs.ircdocs.horse/&#34;&gt;IRC Definition Files&lt;/a&gt; got documentation for ERR_LINKCHANNEL and BOT ISUPPORT token as well as a bunch of fixes.&lt;/p&gt;
&lt;h3 id=&#34;mobile-clients&#34;&gt;Mobile clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/kiwiirc_mobile.png&#34;
    alt=&#34;KiwiIRC Mobile screenshot&#34; width=&#34;320&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;KiwiIRC Mobile screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;appirc&#34;&gt;&lt;a href=&#34;https://github.com/roma-apps/AppIRC&#34;&gt;AppIRC&lt;/a&gt; - iOS/Android client for The Lounge instances&lt;/h4&gt;
&lt;p&gt;Support was added for The Lounge 4.x.&lt;/p&gt;
&lt;h4 id=&#34;colloquy&#34;&gt;&lt;a href=&#34;https://colloquy.app/&#34;&gt;Colloquy&lt;/a&gt; - an advanced IRC, &lt;a href=&#34;https://en.wikipedia.org/wiki/SILC_%28protocol%29&#34;&gt;SILC&lt;/a&gt; &amp;amp; &lt;a href=&#34;https://en.wikipedia.org/wiki/Internet_Citizen%27s_Band&#34;&gt;ICB&lt;/a&gt; client for macOS and iOS&lt;/h4&gt;
&lt;p&gt;Support was added for 3.2 SASL authentication and various fixes were made to capability negotiation.&lt;/p&gt;
&lt;h4 id=&#34;coreirc&#34;&gt;&lt;a href=&#34;https://coreirc.com/&#34;&gt;CoreIRC&lt;/a&gt; – Android client&lt;/h4&gt;
&lt;p&gt;On-demand chat logs for network channels and private chats were added. The UI got a facelift for dropdowns and text inputs.&lt;/p&gt;
&lt;h4 id=&#34;irccloud&#34;&gt;&lt;a href=&#34;https://www.irccloud.com/&#34;&gt;IRCCloud&lt;/a&gt; - Connect to any IRC server out there, and even Slack workspaces&lt;/h4&gt;
&lt;p&gt;In their new releases, IRCCloud’s Android and iOS apps received stability improvements and minor fixes. The experimental cross-platform &lt;a href=&#34;https://github.com/irccloud/irccloud-desktop&#34;&gt;desktop application&lt;/a&gt; got a new release with Apple Silicon support.&lt;/p&gt;
&lt;h4 id=&#34;kiwiirc-mobile&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwiirc-mobile&#34;&gt;KiwiIRC mobile&lt;/a&gt; - iOS and Android version of the popular web client, built using NativeScript-Vue&lt;/h4&gt;
&lt;p&gt;The client was made public, but is not yet available in app stores.&lt;/p&gt;
&lt;h4 id=&#34;revolution-irc&#34;&gt;&lt;a href=&#34;https://github.com/MCMrARM/revolution-irc&#34;&gt;Revolution IRC&lt;/a&gt; – Android client with Material design&lt;/h4&gt;
&lt;p&gt;A release was made with a crash fix.&lt;/p&gt;
&lt;h3 id=&#34;web-clients&#34;&gt;Web clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/gamja.png&#34;
    alt=&#34;gamja screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;gamja screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Many of these include support for persistent history, so there is some overlap with the bouncer category.&lt;/p&gt;
&lt;h4 id=&#34;convos&#34;&gt;&lt;a href=&#34;https://convos.chat/&#34;&gt;Convos&lt;/a&gt; - Mojolicious in the backend and Svelte in the frontend&lt;/h4&gt;
&lt;p&gt;Convos had a very active period with 50 releases. Things added include support for WEBIRC spec, interface translation support, better user experience for +i (invite only) channels, support for connection profiles and chat input field sent messages/commands history.&lt;/p&gt;
&lt;h4 id=&#34;gamja&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/gamja&#34;&gt;gamja&lt;/a&gt; – a bare-bones web client&lt;/h4&gt;
&lt;p&gt;A new UI was added for network management, mobile support was improved and user mode displaying in channels was added. Support was added for many of the usual IRC commands, STATUSMSG, incoming INVITE messages and CHATHISTORY TARGETS (to avoid missing direct messages coming from other users), labeled-response, draft/event-playback and notification tags (multiple messages from the same user will only produce a single notification).&lt;/p&gt;
&lt;p&gt;Networks such as &lt;a href=&#34;https://web.libera.chat/gamja/&#34;&gt;Libera Chat&lt;/a&gt;, &lt;a href=&#34;https://tilde.chat/gamja/&#34;&gt;tilde.chat&lt;/a&gt; and &lt;a href=&#34;https://ergo.chat/gamja/&#34;&gt;Ergo&lt;/a&gt; started offering gamja instances.&lt;/p&gt;
&lt;h4 id=&#34;glowing-bear&#34;&gt;&lt;a href=&#34;https://www.glowing-bear.org/&#34;&gt;Glowing Bear&lt;/a&gt; - WeeChat web frontend&lt;/h4&gt;
&lt;p&gt;Some build fixes and other small cleanups were made.&lt;/p&gt;
&lt;h4 id=&#34;kiwiirc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwiirc&#34;&gt;KiwiIRC&lt;/a&gt; – uses static files and supports theming and plugins (JavaScript)&lt;/h4&gt;
&lt;p&gt;Support was added for setname, chghost and RPL_WHOISCERTFP in /whois. Image embedding with embedly was extracted into its own component so it can be replaced by plugins. Autocomplete was made more robust. The &lt;a href=&#34;https://github.com/kiwiirc/plugin-conference&#34;&gt;Jitsi conference plugin&lt;/a&gt; was rewritten to make use of recent KiwiIRC API improvements.&lt;/p&gt;
&lt;p&gt;Prawnsalad handed over the leadership role of the KiwiIRC products to itsonlybinary.&lt;/p&gt;
&lt;h4 id=&#34;the-lounge&#34;&gt;&lt;a href=&#34;https://thelounge.chat/&#34;&gt;The Lounge&lt;/a&gt; - modern web client utilising Node.js&lt;/h4&gt;
&lt;p&gt;A message search feature was added, inline audio file support was improved and ops context menu was made available also for half ops, admins and owners. Support was added for connecting through corporate firewalls using a SOCKS proxy.&lt;/p&gt;
&lt;h3 id=&#34;desktop-clients&#34;&gt;Desktop clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/iridium.png&#34;
    alt=&#34;Iridium screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Iridium screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;adiirc&#34;&gt;&lt;a href=&#34;https://adiirc.com/&#34;&gt;AdiIRC&lt;/a&gt; – freeware client for Windows&lt;/h4&gt;
&lt;p&gt;Version 4.0 was released with additions such as an option to run commands when drag/dropping files into a window, options to tweak tab completion behaviour and improvements to nick colouring.&lt;/p&gt;
&lt;h4 id=&#34;adium&#34;&gt;&lt;a href=&#34;https://adium.im/&#34;&gt;Adium&lt;/a&gt; – multi-protocol client for macOS&lt;/h4&gt;
&lt;p&gt;Big updates were made to the build process.&lt;/p&gt;
&lt;h4 id=&#34;circe&#34;&gt;&lt;a href=&#34;https://github.com/jorgenschaefer/circe&#34;&gt;Circe&lt;/a&gt; - a client for IRC in Emacs&lt;/h4&gt;
&lt;p&gt;Support was added for authenticating with SASL EXTERNAL and TLS client certificates.&lt;/p&gt;
&lt;h4 id=&#34;grumpychat&#34;&gt;&lt;a href=&#34;https://github.com/grumpy-irc/grumpy&#34;&gt;GrumpyChat&lt;/a&gt; - Modern, yet oldschool client with distributed core, written in C++&lt;/h4&gt;
&lt;p&gt;WHO syncing was made smarter so as not to flood IRCds with requests for channel users.&lt;/p&gt;
&lt;h4 id=&#34;hexchat&#34;&gt;&lt;a href=&#34;https://hexchat.github.io/&#34;&gt;HexChat&lt;/a&gt; - client for Windows and UNIX-like operating systems&lt;/h4&gt;
&lt;p&gt;Support was added for SETNAME, UTF8ONLY, invite-notify and account-tag specs.&lt;/p&gt;
&lt;h4 id=&#34;iridium&#34;&gt;&lt;a href=&#34;https://github.com/avojak/iridium&#34;&gt;Iridium&lt;/a&gt; – a native Linux client built in Vala and GTK for elementary OS&lt;/h4&gt;
&lt;p&gt;The first official releases, 1.0.0 and 1.1.0, were made for this new client. Initial support for browsing channels was added.&lt;/p&gt;
&lt;h4 id=&#34;konversation&#34;&gt;&lt;a href=&#34;https://konversation.kde.org/&#34;&gt;Konversation&lt;/a&gt; – KDE’s IRC client for Windows, Linux and BSDs&lt;/h4&gt;
&lt;p&gt;Support was added for chghost and cap-notify capabilities.&lt;/p&gt;
&lt;h4 id=&#34;kvirc&#34;&gt;&lt;a href=&#34;https://www.kvirc.net/&#34;&gt;KVIrc&lt;/a&gt; – client built with Qt&lt;/h4&gt;
&lt;p&gt;Tentative support for Linux Wayland sessions was added.&lt;/p&gt;
&lt;h4 id=&#34;lax&#34;&gt;&lt;a href=&#34;https://github.com/brandly/Lax&#34;&gt;Lax&lt;/a&gt; - client built with Electron &amp;amp; React (JavaScript)&lt;/h4&gt;
&lt;p&gt;Support for RECEIVE_NICK was added and a new release was made.&lt;/p&gt;
&lt;h4 id=&#34;loqui&#34;&gt;&lt;a href=&#34;https://github.com/sunnyone/loqui&#34;&gt;Loqui&lt;/a&gt; - client for GTK environments&lt;/h4&gt;
&lt;p&gt;The application was ported to GTK3.&lt;/p&gt;
&lt;h4 id=&#34;mirc&#34;&gt;&lt;a href=&#34;https://www.mirc.com/&#34;&gt;mIRC&lt;/a&gt; – 95 ‘til infinity (Windows-only)&lt;/h4&gt;
&lt;p&gt;Two releases were made. Windows 10 Aero theme support was added alongside many small fixes.&lt;/p&gt;
&lt;h4 id=&#34;polari&#34;&gt;&lt;a href=&#34;https://wiki.gnome.org/Apps/Polari&#34;&gt;Polari&lt;/a&gt; - GNOME’s client&lt;/h4&gt;
&lt;p&gt;GTK4 compatibility fixes were made and scroll position was made sticky when loading extra logs.&lt;/p&gt;
&lt;h4 id=&#34;smuxi&#34;&gt;&lt;a href=&#34;https://smuxi.im/&#34;&gt;Smuxi&lt;/a&gt; – multi-protocol and cross-platform&lt;/h4&gt;
&lt;p&gt;Version 1.1 was released with many years&amp;rsquo; worth of additions such as an updated emoji catalog, revamped preferences dialog and CertFP authentication support.&lt;/p&gt;
&lt;h4 id=&#34;srain&#34;&gt;&lt;a href=&#34;https://srain.im/&#34;&gt;Srain&lt;/a&gt; – modern client built with GTK&lt;/h4&gt;
&lt;p&gt;The move to Meson build system was completed, support was added for hiding the server buffer and sending sending special commands via /quote.&lt;/p&gt;
&lt;h4 id=&#34;textual&#34;&gt;&lt;a href=&#34;https://www.codeux.com/textual/&#34;&gt;Textual&lt;/a&gt; – client for macOS&lt;/h4&gt;
&lt;p&gt;Version 7.2.0 was released with dark mode support.&lt;/p&gt;
&lt;h4 id=&#34;ərk&#34;&gt;&lt;a href=&#34;https://github.com/nutjob-laboratories/erk&#34;&gt;Ərk&lt;/a&gt; - cross-platform client written in Python 3, Qt 5, and Twisted&lt;/h4&gt;
&lt;p&gt;Support was added for user mode display in channels. The systray menu was enriched with new functionality. The plugin system was replaced with a new one.&lt;/p&gt;
&lt;h3 id=&#34;terminal-clients&#34;&gt;Terminal clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/senpai.png&#34;
    alt=&#34;senpai screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;senpai screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;catgirl&#34;&gt;&lt;a href=&#34;https://git.causal.agency/catgirl/about/&#34;&gt;catgirl&lt;/a&gt; - TLS-only client&lt;/h4&gt;
&lt;p&gt;A very active period for this young client. Improvements were made to scrolling and keyboard navigation and FreeBSD &amp;amp; OpenBSD compatibility.&lt;/p&gt;
&lt;h4 id=&#34;glirc&#34;&gt;&lt;a href=&#34;https://github.com/glguy/irc-core&#34;&gt;glirc&lt;/a&gt; - Haskell library and console client&lt;/h4&gt;
&lt;p&gt;Initial support was added for multiline editing, a never-highlights setting  was added to stop common words from being treated as nicknames and nickname completion was improved. DCC support was removed.&lt;/p&gt;
&lt;h4 id=&#34;irssi&#34;&gt;&lt;a href=&#34;https://irssi.org/&#34;&gt;Irssi&lt;/a&gt; - your text mode chatting application since 1999&lt;/h4&gt;
&lt;p&gt;Version 1.2.3 was released with many fixes and improvements to stability. After the release, support was added for STARTTLS, aliases for ns, ms, os, cs shorthand commands and /IGNORE &amp;hellip; NOHILIGHT to ignore some highlights.&lt;/p&gt;
&lt;h4 id=&#34;kirc&#34;&gt;&lt;a href=&#34;https://mcpcpc.github.io/kirc&#34;&gt;kirc&lt;/a&gt; - a tiny client written in POSIX C99&lt;/h4&gt;
&lt;p&gt;Support was added for multibyte and UTF-8 characters. A command history buffer was added.&lt;/p&gt;
&lt;h4 id=&#34;senpai&#34;&gt;&lt;a href=&#34;https://sr.ht/~taiite/senpai/&#34;&gt;senpai&lt;/a&gt; - TUI client made for bouncers&lt;/h4&gt;
&lt;p&gt;First published in 2020, this client written in Go currently works best with soju bouncer. It supports shiny new IRC extensions such as CHATHISTORY and +typing.&lt;/p&gt;
&lt;h4 id=&#34;swirc&#34;&gt;&lt;a href=&#34;https://www.nifty-networks.net/swirc/&#34;&gt;Swirc&lt;/a&gt; - lightweight ICB and IRC client&lt;/h4&gt;
&lt;p&gt;Additions include a nicklist, new modes and options for TLS/SSL connections as well as numerous fixes and stability improvements.&lt;/p&gt;
&lt;h4 id=&#34;rirc&#34;&gt;&lt;a href=&#34;https://rcr.io/rirc/&#34;&gt;rirc&lt;/a&gt; - a minimalistic irc client written in C&lt;/h4&gt;
&lt;p&gt;In addition to a bunch of fixes, code quality was improved.&lt;/p&gt;
&lt;h4 id=&#34;tiny&#34;&gt;&lt;a href=&#34;https://github.com/osa1/tiny&#34;&gt;tiny&lt;/a&gt; – client written in Rust&lt;/h4&gt;
&lt;p&gt;A bug fix release was made.&lt;/p&gt;
&lt;h4 id=&#34;weechat&#34;&gt;&lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; - the extensible chat client&lt;/h4&gt;
&lt;p&gt;Support was added for new SASL authentication mechanisms SCRAM-SHA-1, SCRAM-SHA-256 and SCRAM-SHA-512. System certificates are now loaded automatically without having to define a path.&lt;/p&gt;
&lt;h3 id=&#34;bouncers&#34;&gt;Bouncers&lt;/h3&gt;
&lt;p&gt;They stay online, so you don’t have to!&lt;/p&gt;
&lt;h4 id=&#34;kiwibnc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwibnc&#34;&gt;KiwiBNC&lt;/a&gt; – for one person or 10,000 people (Node.js)&lt;/h4&gt;
&lt;p&gt;A client id was added for identifing the connecting client in order to more accurately deliver unread messages.&lt;/p&gt;
&lt;h4 id=&#34;pounce&#34;&gt;&lt;a href=&#34;https://git.causal.agency/pounce/about/&#34;&gt;pounce&lt;/a&gt; - multi-client, TLS-only IRC bouncer. Uses server-time extension to communicate with clients&lt;/h4&gt;
&lt;p&gt;Support was added for echo-message capability and Palaver (iOS app) push notifications alongside a generic interface for notifications.&lt;/p&gt;
&lt;h4 id=&#34;quassel-irc&#34;&gt;&lt;a href=&#34;https://quassel-irc.org/&#34;&gt;Quassel IRC&lt;/a&gt; - cross-platform, distributed IRC client with a central core&lt;/h4&gt;
&lt;p&gt;Build fixes for macOS went in and the iconsets were updated.&lt;/p&gt;
&lt;h4 id=&#34;soju&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/soju&#34;&gt;Soju&lt;/a&gt; – multi-user bouncer&lt;/h4&gt;
&lt;p&gt;Additions include a fallback in-memory message store, a Unix socket listener, &lt;a href=&#34;https://modern.ircdocs.horse/#casemapping-parameter&#34;&gt;casemapping&lt;/a&gt;, per-user and per-network logging, CHATHISTORY BETWEEN &amp;amp; TARGETS, &lt;a href=&#34;https://git.sr.ht/~emersion/soju/tree/master/item/doc/ext/bouncer-networks.md&#34;&gt;bouncer-networks extension&lt;/a&gt;, setname, account-tag and utf8-only. Handling of ISUPPORT tokens was improved.&lt;/p&gt;
&lt;p&gt;Simon Ser&amp;rsquo;s request to the IETF for an IRC protocol ID in the &lt;a href=&#34;https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids&#34;&gt;TLS Application-Layer Protocol Negotiation (ALPN) registry&lt;/a&gt; was granted and support was added to soju. The ID can be used in cases where IRC over TLS is used with a non-standard port.&lt;/p&gt;
&lt;h4 id=&#34;znc&#34;&gt;&lt;a href=&#34;https://wiki.znc.in/ZNC&#34;&gt;ZNC&lt;/a&gt; - an advanced bouncer&lt;/h4&gt;
&lt;p&gt;Message parsing performance was improved.&lt;/p&gt;
&lt;h3 id=&#34;daemons&#34;&gt;Daemons&lt;/h3&gt;
&lt;h4 id=&#34;ergo&#34;&gt;&lt;a href=&#34;https://ergo.chat/&#34;&gt;Ergo&lt;/a&gt; - combining the features of an ircd, a services framework, and a bouncer&lt;/h4&gt;
&lt;p&gt;Additions include a unified interface for bans and account suspensions, implementations for CHATHISTORY TARGETS, IRC-over-websockets (unpublished spec), bot mode and forward mode (channel mode that forwards unwanted users to a different channel, unpublished spec). Operators can now extend the maximum length of the IRC line using the server.max-line-len configuration key.&lt;/p&gt;
&lt;h4 id=&#34;inspircd&#34;&gt;&lt;a href=&#34;https://www.inspircd.org/&#34;&gt;InspIRCd&lt;/a&gt; - stable, high-performance and modular&lt;/h4&gt;
&lt;p&gt;Support was added for per-DNSBL timeouts and a user mode which allows disabling receiving channel history.&lt;/p&gt;
&lt;h4 id=&#34;ircd-hybrid&#34;&gt;&lt;a href=&#34;https://www.ircd-hybrid.org/&#34;&gt;Ircd-hybrid&lt;/a&gt; - a lightweight, high-performance daemon&lt;/h4&gt;
&lt;p&gt;Many bug fixes and stability improvements were made. Compatibility with OpenSSL 3.0 was improved.&lt;/p&gt;
&lt;h4 id=&#34;miniircd&#34;&gt;&lt;a href=&#34;https://github.com/jrosdahl/miniircd&#34;&gt;miniircd&lt;/a&gt; - a small and limited server with no configuration required&lt;/h4&gt;
&lt;p&gt;Package was added to PyPI and &amp;ndash;ssl-cert-file and &amp;ndash;ssl-key-file options were added.&lt;/p&gt;
&lt;h4 id=&#34;solanum&#34;&gt;&lt;a href=&#34;https://solanum.chat/&#34;&gt;Solanum&lt;/a&gt; - an IRCd for unified networks&lt;/h4&gt;
&lt;p&gt;Additions include an +R channel mode module requiring a services account to chat, better OpenSSL support and nick change tracking for /accept list.&lt;/p&gt;
&lt;h4 id=&#34;txircd&#34;&gt;&lt;a href=&#34;https://github.com/ElementalAlchemist/txircd&#34;&gt;txircd&lt;/a&gt; - Modular IRCd built using Twisted Python library&lt;/h4&gt;
&lt;p&gt;A filtering mechanism was added for blocking specific text patterns across the network.&lt;/p&gt;
&lt;h4 id=&#34;unrealircd&#34;&gt;&lt;a href=&#34;https://www.unrealircd.org/&#34;&gt;UnrealIRCd&lt;/a&gt; - the most widely deployed IRCd&lt;/h4&gt;
&lt;p&gt;The &amp;ldquo;Client connecting&amp;rdquo; notice and logging was enriched, an option was added for a network-wide restriction on the number of connections per IP address and the anti-flood feature was made more flexible. Support was added for database encryption, persistent channel history alongside the CHATHISTORY spec, the +draft/reply and draft/bot tags.&lt;/p&gt;
&lt;h3 id=&#34;bots&#34;&gt;Bots&lt;/h3&gt;
&lt;p&gt;This and the next section has been curated with programming language diversity in mind.&lt;/p&gt;
&lt;h4 id=&#34;bot-irc&#34;&gt;&lt;a href=&#34;https://github.com/gryphonshafer/Bot-IRC&#34;&gt;Bot::IRC&lt;/a&gt; (Perl)&lt;/h4&gt;
&lt;p&gt;Emotes (/me) are now sent as a CTCP ACTION.&lt;/p&gt;
&lt;h4 id=&#34;bot-maverick&#34;&gt;&lt;a href=&#34;https://github.com/Grinnz/maverick&#34;&gt;Bot::Maverick&lt;/a&gt; - Mojo::IRC Bot framework (Perl)&lt;/h4&gt;
&lt;p&gt;The translate plugin was updated to work with the latst Microsoft API. A plugin was added for displaying link titles.&lt;/p&gt;
&lt;h4 id=&#34;botto&#34;&gt;&lt;a href=&#34;https://github.com/strong-code/botto&#34;&gt;Botto&lt;/a&gt; (Node.js)&lt;/h4&gt;
&lt;p&gt;A parser for Twitch was added alongside various module improvements.&lt;/p&gt;
&lt;h4 id=&#34;calculon&#34;&gt;&lt;a href=&#34;https://github.com/c-cube/calculon&#34;&gt;Calculon&lt;/a&gt; – library for writing bots and a collection of plugins (OCaml)&lt;/h4&gt;
&lt;p&gt;A command was added to search emojis from emojipedia.org, support was added for SASL authentication and logging was improved.&lt;/p&gt;
&lt;h4 id=&#34;cardinal&#34;&gt;&lt;a href=&#34;https://github.com/JohnMaguire/Cardinal&#34;&gt;Cardinal&lt;/a&gt; – bot built with Twisted library with a focus on ease of development (Python)&lt;/h4&gt;
&lt;p&gt;Plugins for Wolfram Alpha, OMDb/IMDb, TVmaze and cryptocurrency prices were added as well as Twitter and imgur URL handling.&lt;/p&gt;
&lt;h4 id=&#34;chaskis&#34;&gt;&lt;a href=&#34;https://github.com/xforever1313/Chaskis&#34;&gt;Chaskis&lt;/a&gt; - a framework for making bots (C#)&lt;/h4&gt;
&lt;p&gt;Support was added for specifying server and NickServ passwords through environment variables.&lt;/p&gt;
&lt;h4 id=&#34;cloudbot&#34;&gt;&lt;a href=&#34;https://github.com/TotallyNotRobots/CloudBot&#34;&gt;CloudBot&lt;/a&gt; – a simple, fast and expandable bot (Python)&lt;/h4&gt;
&lt;p&gt;A config reload hook was added and code quality was improved.&lt;/p&gt;
&lt;h4 id=&#34;codybot&#34;&gt;&lt;a href=&#34;https://github.com/esselfe/codybot&#34;&gt;Codybot&lt;/a&gt; – a Linux bot with C compilation and shell access (C)&lt;/h4&gt;
&lt;p&gt;A !rawmsg command was implemented for sending direct data to the server and authentication can now be done with a .passwd file.&lt;/p&gt;
&lt;h4 id=&#34;eggdrop&#34;&gt;&lt;a href=&#34;https://eggheads.org/&#34;&gt;Eggdrop&lt;/a&gt; - the oldest bot still in active development (C/Tcl)&lt;/h4&gt;
&lt;p&gt;After three years of development, version 1.9.0 was released followed by 1.9.1. The massive amount of changes include support for CAP capabilities and SASL, a Twitch module, away-status tracking, a new ident module with oidentd support and ISUPPORT.&lt;/p&gt;
&lt;h4 id=&#34;kameloso&#34;&gt;&lt;a href=&#34;https://github.com/zorael/kameloso&#34;&gt;kameloso&lt;/a&gt; (D)&lt;/h4&gt;
&lt;p&gt;The Twitch functionality received many improvements.&lt;/p&gt;
&lt;h4 id=&#34;limnoria&#34;&gt;&lt;a href=&#34;https://limnoria.net/&#34;&gt;Limnoria&lt;/a&gt; - robust, full-featured, and user/programmer-friendly bot (Python)&lt;/h4&gt;
&lt;p&gt;The Relay plugin was made more robust and received an implementation for +draft/display-name spec. An option was added to disable password login. Support was added for bot mode, receiving commands from draft/multiline batches and an initial implementation of the early draft @register and @verify commands was made.&lt;/p&gt;
&lt;h4 id=&#34;maiden&#34;&gt;&lt;a href=&#34;https://github.com/Shirakumo/maiden&#34;&gt;Maiden&lt;/a&gt; - an extensible and highly modular bot framework (Common Lisp)&lt;/h4&gt;
&lt;p&gt;Support was added for SSL and showing logs with a command.&lt;/p&gt;
&lt;h4 id=&#34;nibblrjr&#34;&gt;&lt;a href=&#34;https://nibblr.pw/&#34;&gt;Nibblrjr&lt;/a&gt; - bot framework for creating custom behaviour dynamically (Node.js)&lt;/h4&gt;
&lt;p&gt;URL scraping was improved and some new commands were added.&lt;/p&gt;
&lt;h4 id=&#34;pbot&#34;&gt;&lt;a href=&#34;https://github.com/pragma-/pbot/&#34;&gt;PBot&lt;/a&gt; – a pragmatic bot (Perl)&lt;/h4&gt;
&lt;p&gt;Modules were added for Bash FAQ &amp;amp; pitfalls and a command line interface to online language translators. Many improvements to IRCv3 support were made and SASL authentication was implemented.&lt;/p&gt;
&lt;h4 id=&#34;pybot&#34;&gt;&lt;a href=&#34;https://github.com/hlmtre/pybot&#34;&gt;Pybot&lt;/a&gt; – an extensible, modular, configurable, and multi-threaded bot (Python)&lt;/h4&gt;
&lt;p&gt;A task scheduler was added.&lt;/p&gt;
&lt;h4 id=&#34;scala-irc-bot&#34;&gt;&lt;a href=&#34;https://github.com/CO2-Codes/Scala-IRC-bot&#34;&gt;Scala-IRC-bot&lt;/a&gt; -  PircBotX based bot (Scala)&lt;/h4&gt;
&lt;p&gt;Support was added for using an external HTTP proxy for outgoing requests and setting server password and ident in configuration file.&lt;/p&gt;
&lt;h4 id=&#34;skybot&#34;&gt;&lt;a href=&#34;https://github.com/rmmh/skybot&#34;&gt;Skybot&lt;/a&gt; - multithreaded and multinetwork bot (Python)&lt;/h4&gt;
&lt;p&gt;Wikipedia plugin was fixed and a tarot card plugin was added.&lt;/p&gt;
&lt;h4 id=&#34;sopel&#34;&gt;&lt;a href=&#34;https://sopel.chat/&#34;&gt;Sopel&lt;/a&gt; - lightweight, easy-to-use utility bot (Python)&lt;/h4&gt;
&lt;p&gt;Tracking of channel modes and members was improved, a .raw command was added to send raw IRC messages, support for BOT ISUPPORT token &amp;amp; mode was added and docs were improved.&lt;/p&gt;
&lt;h4 id=&#34;valeyard&#34;&gt;&lt;a href=&#34;https://github.com/ValwareIRC/Valeyard&#34;&gt;Valeyard&lt;/a&gt; - link IRC with SQL databases (PHP)&lt;/h4&gt;
&lt;p&gt;This new bot supports reading and writing to Anope SQLdb tables, writing various stats and information from UnrealIRCd to its own SQL tables, reading and writing to WordPress SQLdb user tables, TLS connectivity, message-tag and SASL authentication.&lt;/p&gt;
&lt;h4 id=&#34;yetibot&#34;&gt;&lt;a href=&#34;https://yetibot.com/&#34;&gt;Yetibot&lt;/a&gt; - extreme chatops bot for Slack and IRC (Clojure)&lt;/h4&gt;
&lt;p&gt;An air quality subcommand was added to the weather command.&lt;/p&gt;
&lt;h3 id=&#34;libraries-frameworks-and-utilities&#34;&gt;Libraries, frameworks and utilities&lt;/h3&gt;
&lt;h4 id=&#34;dart-irc&#34;&gt;&lt;a href=&#34;https://github.com/SpinlockLabs/irc.dart&#34;&gt;Dart IRC&lt;/a&gt; (Dart)&lt;/h4&gt;
&lt;p&gt;Code quality was improved.&lt;/p&gt;
&lt;h4 id=&#34;deno-irc&#34;&gt;&lt;a href=&#34;https://github.com/jeromeludmann/deno-irc&#34;&gt;Deno-irc&lt;/a&gt; - client protocol module for Deno (JavaScript)&lt;/h4&gt;
&lt;p&gt;Some refactoring and smaller fixes were made.&lt;/p&gt;
&lt;h4 id=&#34;dialect&#34;&gt;&lt;a href=&#34;https://github.com/zorael/dialect&#34;&gt;Dialect&lt;/a&gt; - IRC parsing library (D)&lt;/h4&gt;
&lt;p&gt;Validation of nicks and idents was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;girc&#34;&gt;&lt;a href=&#34;https://github.com/lrstanley/girc&#34;&gt;girc&lt;/a&gt; - a flexible library (Go)&lt;/h4&gt;
&lt;p&gt;Message serialisation was made more robust.&lt;/p&gt;
&lt;h4 id=&#34;goirc&#34;&gt;&lt;a href=&#34;https://github.com/fluffle/goirc&#34;&gt;goirc&lt;/a&gt; - Event-based stateful client framework (Go)&lt;/h4&gt;
&lt;p&gt;Nickname handling was improved.&lt;/p&gt;
&lt;h4 id=&#34;irc-client&#34;&gt;&lt;a href=&#34;https://github.com/raku-community-modules/IRC-Client&#34;&gt;IRC::Client&lt;/a&gt; - Extendable Internet Relay Chat client (Raku)&lt;/h4&gt;
&lt;p&gt;Mode handling was improved.&lt;/p&gt;
&lt;h4 id=&#34;irc-framework&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/irc-framework&#34;&gt;irc-framework&lt;/a&gt; – for bots and full clients (Node.js)&lt;/h4&gt;
&lt;p&gt;Functions related to CASEMAPPING were added. Support was added for BATCH in events, time in invite events, RPL_UMODEIS, RPL_WHOISASN and MONITOR.&lt;/p&gt;
&lt;h4 id=&#34;irc-go&#34;&gt;&lt;a href=&#34;https://github.com/ergochat/irc-go&#34;&gt;irc-go&lt;/a&gt; - libraries to help with IRC development (Go)&lt;/h4&gt;
&lt;p&gt;The package ircreader was added for optimised reading of \n-terminated lines. Message truncation was made more robust. Support was added for batch and labeled-response.&lt;/p&gt;
&lt;h4 id=&#34;irckit&#34;&gt;&lt;a href=&#34;https://github.com/FuelRats/IRCKit&#34;&gt;IRCKit&lt;/a&gt; - an asynchronous pure Swift library using the Apple NIO framework&lt;/h4&gt;
&lt;p&gt;Handling of overly long messages was improved, support was added for echo-message.&lt;/p&gt;
&lt;h4 id=&#34;ircstates&#34;&gt;&lt;a href=&#34;https://github.com/jesopo/ircstates&#34;&gt;ircstates&lt;/a&gt; - sans-I/O IRC session state parsing library (Python)&lt;/h4&gt;
&lt;p&gt;Support was added for the channel renaming spec (RENAME) and the ISUPPORT parameter for nickname length.&lt;/p&gt;
&lt;h4 id=&#34;irc-police&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~taiite/irc-police&#34;&gt;irc-police&lt;/a&gt; - stateful, transparent IRCv3 proxy that tells you why and how IRC software is fucked up&lt;/h4&gt;
&lt;p&gt;taiite made public this handy tool for IRC developers.&lt;/p&gt;
&lt;h4 id=&#34;kitteh-irc-client-library&#34;&gt;&lt;a href=&#34;https://kitteh.org/&#34;&gt;Kitteh IRC Client Library&lt;/a&gt; (Java)&lt;/h4&gt;
&lt;p&gt;Support was added for standard replies, setname, labeled-response, typing and the ISUPPORT parameters CLIENTTAGDENY and TARGMAX.&lt;/p&gt;
&lt;h4 id=&#34;miniirc&#34;&gt;&lt;a href=&#34;https://github.com/luk3yx/miniirc&#34;&gt;miniirc&lt;/a&gt; -  a mini IRC framework (Python)&lt;/h4&gt;
&lt;p&gt;The ability to make miniirc run handlers in thread pools was added.&lt;/p&gt;
&lt;h4 id=&#34;netirc&#34;&gt;&lt;a href=&#34;https://github.com/fredimachado/NetIRC&#34;&gt;NetIRC&lt;/a&gt; - simple Portable client library targeting .NETStandard 2.0 and .NET Framework 4.6.1 (C#)&lt;/h4&gt;
&lt;p&gt;Additions include an ability to create custom message handlers, simpler constructors and CTCP handling. A client, &lt;a href=&#34;https://github.com/fredimachado/NetIRC.Desktop&#34;&gt;NetIRC.Desktop&lt;/a&gt; was created using the library.&lt;/p&gt;
&lt;h4 id=&#34;ocaml-irc-client-library&#34;&gt;&lt;a href=&#34;https://github.com/johnelse/ocaml-irc-client&#34;&gt;OCaml IRC client library&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Support for SASL authentication and logging was added.&lt;/p&gt;
&lt;h4 id=&#34;pylink&#34;&gt;&lt;a href=&#34;https://github.com/jlu5/PyLink&#34;&gt;PyLink&lt;/a&gt; - multi-network IRC Services &amp;amp; server-side relayer&lt;/h4&gt;
&lt;p&gt;Stability, casemapping support and docs were improved.&lt;/p&gt;
&lt;h4 id=&#34;the-irc-crate&#34;&gt;&lt;a href=&#34;https://github.com/aatxe/irc&#34;&gt;The irc crate&lt;/a&gt; - thread-safe and async-friendly client library (Rust)&lt;/h4&gt;
&lt;p&gt;Certificate handling was improved and some smaller fixes went in.&lt;/p&gt;
&lt;h4 id=&#34;wic&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~eau/wic/&#34;&gt;WIC&lt;/a&gt; - WeeChat IRC Crypto (Go &amp;amp; Python)&lt;/h4&gt;
&lt;p&gt;First published in 2020, this utility combines a WeeChat Python script driving an external cryptographic helper written in Go.&lt;/p&gt;
&lt;h3 id=&#34;bridges&#34;&gt;Bridges&lt;/h3&gt;
&lt;h4 id=&#34;irc-slack&#34;&gt;&lt;a href=&#34;https://github.com/insomniacslk/irc-slack&#34;&gt;irc-slack&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Reliability and performance was improved and full support for private channels was added.&lt;/p&gt;
&lt;h4 id=&#34;localslackirc&#34;&gt;&lt;a href=&#34;https://github.com/ltworf/localslackirc&#34;&gt;localslackirc&lt;/a&gt; - gateway for Slack, running on localhost for one user&lt;/h4&gt;
&lt;p&gt;Support was added for Unicode emoji and downloading direct message history. An option was added for saving long formatted text as .txt files.&lt;/p&gt;
&lt;h4 id=&#34;matterbridge&#34;&gt;&lt;a href=&#34;https://github.com/42wim/matterbridge&#34;&gt;matterbridge&lt;/a&gt; - bridges between a growing number of protocols&lt;/h4&gt;
&lt;p&gt;Support was added for vk alongside many improvements to other protocols.&lt;/p&gt;
&lt;h4 id=&#34;teleirc&#34;&gt;&lt;a href=&#34;https://github.com/RITlug/teleirc&#34;&gt;teleirc&lt;/a&gt; – bridge to Telegram&lt;/h4&gt;
&lt;p&gt;Photos sent via Telegram are now viewable from IRC via an imgur link.&lt;/p&gt;
&lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt;
&lt;p&gt;Taking care of user accounts and channels among other things.&lt;/p&gt;
&lt;h4 id=&#34;anope&#34;&gt;&lt;a href=&#34;https://www.anope.org/&#34;&gt;Anope&lt;/a&gt; – highly modular set of services&lt;/h4&gt;
&lt;p&gt;The InspIRCd modules received several improvements, the database charset was switched to utf8mb4 in relevant tables and the database engine was switched to InnoDB.&lt;/p&gt;
&lt;h4 id=&#34;atheme&#34;&gt;&lt;a href=&#34;https://atheme.github.io/&#34;&gt;Atheme&lt;/a&gt; - for large networks with high scalability requirements&lt;/h4&gt;
&lt;p&gt;Support was added for adjusting default mode lock (MLOCK) and deleting all restored marks on an account. The example config was greatly improved. An operserv/modmanager module was added to replace four old modules. Many improvements to stability and code quality were made. Code quality assurance was improved by automating Coverity scans and making the code more understandable for Clang&amp;rsquo;s static analyser.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Thanks to Mikaela for reviewing parts of this article!&lt;/em&gt;&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
    <item>
      <title>IRC technology news from the second half of 2020</title>
      <link>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2020/</link>
      <pubDate>Sun, 30 May 2021 12:52:06 +0300</pubDate>
      
      <guid>https://www.ilmarilauhakangas.fi/irc_technology_news_from_the_second_half_of_2020/</guid>
      <description>&lt;p&gt;In this article we look at the happenings in the IRC ecosystem during the second half of 2020. The great number of active software projects demonstrates a broad interest in specifying and implementing modern IRC standards.&lt;/p&gt;
&lt;p&gt;The article was written in January 2021 and was supposed to be published somewhere else, but due to delays I decided to create this blog site to finally get it out.&lt;/p&gt;
&lt;p&gt;It seems that the pandemic of 2020 with its influence on remote work and communication also had an impact on the interest in IRC. During the research phase of this article, it became clear that many were dusting off their old IRC projects and making them run on the latest software stacks. Numerous new projects had also entered development. For every active project included in this article, several others were left out due to being clearly personal, too young or still experimental.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/solanum.svg&#34;
    alt=&#34;Solanum symbol&#34; width=&#34;160&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;From the perspective of the free and open source software community, the biggest news was freenode and &lt;a href=&#34;https://www.oftc.net/&#34;&gt;OFTC&lt;/a&gt; staff collaborating on an IRCd called &lt;a href=&#34;https://solanum.chat/&#34;&gt;Solanum&lt;/a&gt;. Solanum is a fork of Charybdis, which has now been archived. For years, freenode has been using IRCd-Seven, which is based on Charybdis. OFTC has been using a modified version of Hybrid IRCd (still actively developed).&lt;/p&gt;
&lt;p&gt;Note: freenode was later abandoned by most of its free and open source software communities in favour of &lt;a href=&#34;https://libera.chat/&#34;&gt;Libera Chat&lt;/a&gt; due to an unfortunate ownership conflict. The collaboration on Solanum continues between Libera Chat and OFTC staff.&lt;/p&gt;
&lt;h3 id=&#34;protocol-specifications&#34;&gt;Protocol specifications&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/IRCv3.svg&#34;
    alt=&#34;IRCv3 logo&#34; width=&#34;80&#34;&gt;
&lt;/figure&gt;

&lt;p&gt;A draft &lt;a href=&#34;https://ircv3.net/specs/extensions/channel-rename&#34;&gt;spec for channel renaming&lt;/a&gt; was published (Sadie Powell, James Wheare and reviewers).&lt;/p&gt;
&lt;p&gt;A draft &lt;a href=&#34;https://ircv3.net/specs/extensions/chathistory&#34;&gt;spec for CHATHISTORY&lt;/a&gt; was published (MuffinMedic, Darren Whitlen, Shivaram Lingamneni and reviewers).&lt;/p&gt;
&lt;p&gt;The draft &lt;a href=&#34;https://ircv3.net/specs/extensions/multiline&#34;&gt;multiline specification&lt;/a&gt; received clarifications on handling blank lines and line feeds (James Wheare and reviewers).&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://ircv3.net/specs/extensions/chghost-3.2&#34;&gt;CHGHOST capability spec&lt;/a&gt; was rewritten for clarity (James Wheare and reviewers).&lt;/p&gt;
&lt;h3 id=&#34;documentation&#34;&gt;Documentation&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://defs.ircdocs.horse/&#34;&gt;IRC Definition Files&lt;/a&gt;, &lt;a href=&#34;https://modern.ircdocs.horse/&#34;&gt;Modern IRC Client Protocol&lt;/a&gt; and &lt;a href=&#34;https://github.com/ircdocs/best-practices&#34;&gt;the collection for best practices&lt;/a&gt; all received some improvements and additions.&lt;/p&gt;
&lt;h3 id=&#34;mobile-clients&#34;&gt;Mobile clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/ircforandroid.jpg&#34;
    alt=&#34;IRC for Android screenshot&#34; width=&#34;320&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;IRC for Android screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;colloquy&#34;&gt;&lt;a href=&#34;https://colloquy.app/&#34;&gt;Colloquy&lt;/a&gt; - an advanced IRC, &lt;a href=&#34;https://en.wikipedia.org/wiki/SILC_%28protocol%29&#34;&gt;SILC&lt;/a&gt; &amp;amp; &lt;a href=&#34;https://en.wikipedia.org/wiki/Internet_Citizen%27s_Band&#34;&gt;ICB&lt;/a&gt; client for macOS and iOS&lt;/h4&gt;
&lt;p&gt;The iOS app got some macOS platform compatibility fixes (unreleased).&lt;/p&gt;
&lt;h4 id=&#34;coreirc&#34;&gt;&lt;a href=&#34;https://coreirc.com/&#34;&gt;CoreIRC&lt;/a&gt; – Android client&lt;/h4&gt;
&lt;p&gt;CoreIRC started offering a Lite version of its app. New features include experimental support for bouncers and /znc commands, improved nickname completion, sending commands to the server automatically after connecting and automatic reconnection support.&lt;/p&gt;
&lt;h4 id=&#34;irc-for-android&#34;&gt;&lt;a href=&#34;https://play.google.com/store/apps/details?id=com.countercultured.irc4android&#34;&gt;IRC for Android&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The app was updated to include extended mIRC type color support.&lt;/p&gt;
&lt;h4 id=&#34;irccloud&#34;&gt;&lt;a href=&#34;https://www.irccloud.com/&#34;&gt;IRCCloud&lt;/a&gt; - Connect to any IRC server out there, and even Slack workspaces&lt;/h4&gt;
&lt;p&gt;In their new releases, IRCCloud’s Android app got support for notification bubbles and the iOS app got UI and stability improvements. IRCCloud’s IRCv3 Working Group representative James Wheare was very active in specification writing and reviewing.&lt;/p&gt;
&lt;h4 id=&#34;palaver&#34;&gt;&lt;a href=&#34;https://palaverapp.com/&#34;&gt;Palaver&lt;/a&gt; - advanced client for iPhone and iPad&lt;/h4&gt;
&lt;p&gt;Two releases included adding support for additional character sets such as GBK and ZNC-related improvements.&lt;/p&gt;
&lt;h4 id=&#34;revolution-irc&#34;&gt;&lt;a href=&#34;https://github.com/MCMrARM/revolution-irc&#34;&gt;Revolution IRC&lt;/a&gt; – Android client with Material design&lt;/h4&gt;
&lt;p&gt;The app was updated for security and platform compatibility.&lt;/p&gt;
&lt;h3 id=&#34;web-clients&#34;&gt;Web clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/thelounge.png&#34;
    alt=&#34;The Lounge screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;The Lounge screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Many of these include support for persistent history, so there is some overlap with the bouncer category.&lt;/p&gt;
&lt;h4 id=&#34;convos&#34;&gt;&lt;a href=&#34;https://convos.chat/&#34;&gt;Convos&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;There was a continous stream of releases, totalling over 20. Things added include SASL authentication support, bot functionality, disk usage display, user management, IRCv3 capability negotiation support, backing up user input to browser’s localStorage and Jitsi integration&lt;/p&gt;
&lt;h4 id=&#34;dispatch&#34;&gt;&lt;a href=&#34;https://github.com/khlieng/dispatch&#34;&gt;dispatch&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Support for I2P anonymous network was added&lt;/p&gt;
&lt;h4 id=&#34;ep_irc&#34;&gt;&lt;a href=&#34;https://github.com/JohnMcLear/ep_irc&#34;&gt;ep_irc&lt;/a&gt; – a client inside your Etherpad page&lt;/h4&gt;
&lt;p&gt;JohnMcLear revived this alternate chat plugin for Etherpad.&lt;/p&gt;
&lt;h4 id=&#34;gamja&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/gamja&#34;&gt;gamja&lt;/a&gt; – a bare-bones web client&lt;/h4&gt;
&lt;p&gt;Simon Ser started developing the client in April 2020 and actively refined it throughout the summer. Gamja requires an IRC WebSocket server.&lt;/p&gt;
&lt;h4 id=&#34;glowing-bear&#34;&gt;&lt;a href=&#34;https://www.glowing-bear.org/&#34;&gt;Glowing Bear&lt;/a&gt; - WeeChat web frontend&lt;/h4&gt;
&lt;p&gt;Version 0.9.0 added tab completion. Unreleased changes include support for new authentication methods.&lt;/p&gt;
&lt;h4 id=&#34;kiwiirc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwiirc&#34;&gt;KiwiIRC&lt;/a&gt; – uses static files and supports theming and plugins (JavaScript)&lt;/h4&gt;
&lt;p&gt;Commits for the next release include improved multi-line message support.&lt;/p&gt;
&lt;h4 id=&#34;the-lounge&#34;&gt;&lt;a href=&#34;https://thelounge.chat/&#34;&gt;The Lounge&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Release v4.2.0 added a mentions panel, custom highlight exceptions and a new section for configuring SASL on the connect screen. Commits towards the next version include accessibility improvements.&lt;/p&gt;
&lt;h3 id=&#34;desktop-clients&#34;&gt;Desktop clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/erk.png&#34;
    alt=&#34;Ərk screenshot&#34; width=&#34;720&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;Ərk screenshot on Linux&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;adiirc&#34;&gt;&lt;a href=&#34;https://adiirc.com/&#34;&gt;AdiIRC&lt;/a&gt; – freeware client for Windows&lt;/h4&gt;
&lt;p&gt;Release 3.9 among other things added an option to set custom icons for the default toolbar buttons. The next version will add serverlist options to set IRCv3 echo-message/server-time/SASL error/STS support per server.&lt;/p&gt;
&lt;h4 id=&#34;adium&#34;&gt;&lt;a href=&#34;https://adium.im/&#34;&gt;Adium&lt;/a&gt; – multi-protocol client for macOS&lt;/h4&gt;
&lt;p&gt;Some macOS platform compatibility fixes were made (unreleased).&lt;/p&gt;
&lt;h4 id=&#34;circe&#34;&gt;&lt;a href=&#34;https://github.com/jorgenschaefer/circe&#34;&gt;Circe&lt;/a&gt; - a client for IRC in Emacs&lt;/h4&gt;
&lt;p&gt;Unreleased improvements include faster nickname colouring and Emacs compatibility fixes.&lt;/p&gt;
&lt;h4 id=&#34;grumpychat&#34;&gt;&lt;a href=&#34;https://github.com/grumpy-irc/grumpy&#34;&gt;GrumpyChat&lt;/a&gt; - Modern, yet oldschool client with distributed core, written in C++&lt;/h4&gt;
&lt;p&gt;The headless version of the client, grumpyd, which can be run like a bouncer, gained support for PostgreSQL databases.&lt;/p&gt;
&lt;h4 id=&#34;hexchat&#34;&gt;&lt;a href=&#34;https://hexchat.github.io/&#34;&gt;HexChat&lt;/a&gt; - client for Windows and UNIX-like operating systems&lt;/h4&gt;
&lt;p&gt;Commits for the next release include improvements to font rendering and word splitting.&lt;/p&gt;
&lt;h4 id=&#34;icechat&#34;&gt;&lt;a href=&#34;https://www.icechat.net/&#34;&gt;IceChat&lt;/a&gt; – client for Windows&lt;/h4&gt;
&lt;p&gt;Version 9.50 was released in July 2020 and it includes a year’s worth of improvements. Windows XP support was dropped and the nick list functionality was made more versatile.&lt;/p&gt;
&lt;h4 id=&#34;iridium&#34;&gt;&lt;a href=&#34;https://github.com/avojak/iridium&#34;&gt;Iridium&lt;/a&gt; – a native Linux client built in Vala and GTK for elementary OS&lt;/h4&gt;
&lt;p&gt;Additions include support for changing usernames.&lt;/p&gt;
&lt;h4 id=&#34;konversation&#34;&gt;&lt;a href=&#34;https://konversation.kde.org/&#34;&gt;Konversation&lt;/a&gt; – KDE’s IRC client for Windows, Linux and BSDs&lt;/h4&gt;
&lt;p&gt;Several releases were made with features and improvements including support for nick icon themes from store.kde.org, capability negotiation spec v3.2 and znc.in/self-message capability&lt;/p&gt;
&lt;h4 id=&#34;kvirc&#34;&gt;&lt;a href=&#34;https://www.kvirc.net/&#34;&gt;KVIrc&lt;/a&gt; – client built with Qt&lt;/h4&gt;
&lt;p&gt;Some minor fixes went in.&lt;/p&gt;
&lt;h4 id=&#34;lax&#34;&gt;&lt;a href=&#34;https://github.com/brandly/Lax&#34;&gt;Lax&lt;/a&gt; - client built with Electron &amp;amp; React (JavaScript)&lt;/h4&gt;
&lt;p&gt;Maintenance work and a crash fix (unreleased)&lt;/p&gt;
&lt;h4 id=&#34;mirc&#34;&gt;&lt;a href=&#34;https://www.mirc.com/&#34;&gt;mIRC&lt;/a&gt; – 95 ‘til infinity (Windows-only)&lt;/h4&gt;
&lt;p&gt;Three releases were made. A “Do Not Disturb” option was added to disable notifications along with many fixes.&lt;/p&gt;
&lt;h4 id=&#34;polari&#34;&gt;&lt;a href=&#34;https://wiki.gnome.org/Apps/Polari&#34;&gt;Polari&lt;/a&gt; - GNOME’s client&lt;/h4&gt;
&lt;p&gt;Improvements were made to the thumbnailer and URL preview.&lt;/p&gt;
&lt;h4 id=&#34;smuxi&#34;&gt;&lt;a href=&#34;https://smuxi.im/&#34;&gt;Smuxi&lt;/a&gt; – multi-protocol and cross-platform&lt;/h4&gt;
&lt;p&gt;Smuxi received some macOS build process improvements.&lt;/p&gt;
&lt;h4 id=&#34;srain&#34;&gt;&lt;a href=&#34;https://srain.im/&#34;&gt;Srain&lt;/a&gt; – modern client built with GTK&lt;/h4&gt;
&lt;p&gt;Release 1.1.2 had improvements for Windows usage and build process. Most of the work after that was centered around a move to Meson build system.&lt;/p&gt;
&lt;h4 id=&#34;textual&#34;&gt;&lt;a href=&#34;https://www.codeux.com/textual/&#34;&gt;Textual&lt;/a&gt; – client for macOS&lt;/h4&gt;
&lt;p&gt;Release 7.1.7 contained macOS platform compatibility fixes.&lt;/p&gt;
&lt;h4 id=&#34;thunderbird&#34;&gt;&lt;a href=&#34;https://www.thunderbird.net/&#34;&gt;Thunderbird&lt;/a&gt; – email client with chat support&lt;/h4&gt;
&lt;p&gt;Version 78.0 added echo-message capability&lt;/p&gt;
&lt;h4 id=&#34;ərk&#34;&gt;&lt;a href=&#34;https://github.com/nutjob-laboratories/erk&#34;&gt;Ərk&lt;/a&gt; - cross-platform client written in Python 3, Qt 5, and Twisted&lt;/h4&gt;
&lt;p&gt;Version 0.822 was released with official Linux support and many improvements to the in-built plugin editor alongside over a hundred fixes and tweaks.&lt;/p&gt;
&lt;h3 id=&#34;terminal-clients&#34;&gt;Terminal clients&lt;/h3&gt;
&lt;figure&gt;&lt;img src=&#34;https://www.ilmarilauhakangas.fi/media/tiny.png&#34;
    alt=&#34;tiny screenshot&#34; width=&#34;667&#34;&gt;&lt;figcaption&gt;
      &lt;h4&gt;tiny screenshot&lt;/h4&gt;
    &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;h4 id=&#34;catgirl&#34;&gt;&lt;a href=&#34;https://git.causal.agency/catgirl/about/&#34;&gt;catgirl&lt;/a&gt; - TLS-only client&lt;/h4&gt;
&lt;p&gt;Part of the same &lt;a href=&#34;https://text.causal.agency/010-irc-suite.txt&#34;&gt;IRC suite&lt;/a&gt; as pounce the bouncer. Had three releases, latest being 1.3. Line wrapping and new shortcuts were added and improvements were made to tab-completion.&lt;/p&gt;
&lt;h4 id=&#34;glirc&#34;&gt;&lt;a href=&#34;https://github.com/glguy/irc-core&#34;&gt;glirc&lt;/a&gt; - Haskell library and console client&lt;/h4&gt;
&lt;p&gt;Eric Mertens released two new versions of glirc and the irc-core library. Improvements were made to SASL authentication and STARTTLS support was added. Unreleased improvements include new text formatting features and better rendering for stats and the output of many other commands.&lt;/p&gt;
&lt;h4 id=&#34;irssi&#34;&gt;&lt;a href=&#34;https://irssi.org/&#34;&gt;Irssi&lt;/a&gt; - your text mode chatting application since 1999&lt;/h4&gt;
&lt;p&gt;Unreleased commits include many bug fixes and improvements to Perl scripting.&lt;/p&gt;
&lt;h4 id=&#34;kirc&#34;&gt;&lt;a href=&#34;https://mcpcpc.github.io/kirc&#34;&gt;kirc&lt;/a&gt; - a tiny client written in POSIX C99&lt;/h4&gt;
&lt;p&gt;Initial release happened in August 2020 and over twenty releases followed.&lt;/p&gt;
&lt;h4 id=&#34;swirc&#34;&gt;&lt;a href=&#34;https://www.nifty-networks.net/swirc/&#34;&gt;Swirc&lt;/a&gt; - lightweight ICB and IRC client&lt;/h4&gt;
&lt;p&gt;Release 3.2.5 added commands related to network services and ZNC.&lt;/p&gt;
&lt;h4 id=&#34;rirc&#34;&gt;&lt;a href=&#34;https://github.com/rcr/rirc&#34;&gt;rirc&lt;/a&gt; - a minimalistic irc client written in C&lt;/h4&gt;
&lt;p&gt;Version 0.1.3 was released with support for TLS and IRCv3 CAP support.&lt;/p&gt;
&lt;h4 id=&#34;tiny&#34;&gt;&lt;a href=&#34;https://github.com/osa1/tiny&#34;&gt;tiny&lt;/a&gt; – client written in Rust&lt;/h4&gt;
&lt;p&gt;Two releases were made. Enhancements include more robust joining to channels requiring identification with NickServ, new /help command and lexicographical sorting of nicks.&lt;/p&gt;
&lt;h4 id=&#34;weechat&#34;&gt;&lt;a href=&#34;https://weechat.org/&#34;&gt;WeeChat&lt;/a&gt; - the extensible chat client&lt;/h4&gt;
&lt;p&gt;Releases 2.9 and 3.0 contained many useful additions to WeeChat’s relay and scripting functionality. UTF-8 support with IRC was improved.&lt;/p&gt;
&lt;h3 id=&#34;bouncers&#34;&gt;Bouncers&lt;/h3&gt;
&lt;p&gt;They stay online, so you don’t have to!&lt;/p&gt;
&lt;h4 id=&#34;kiwibnc&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/kiwibnc&#34;&gt;KiwiBNC&lt;/a&gt; – for one person or 10,000 people (Node.js)&lt;/h4&gt;
&lt;p&gt;There is still no official release or a stability guarantee, but this new bouncer is getting more solid. Additions include custom message stores, support for the BOUNCER spec, a status endpoint, user mode tracking, STATUSMSG support, network blacklist&lt;/p&gt;
&lt;h4 id=&#34;pounce&#34;&gt;&lt;a href=&#34;https://git.causal.agency/pounce/about/&#34;&gt;pounce&lt;/a&gt; - multi-client, TLS-only IRC bouncer. Uses IRCv3.2 server-time extension to communicate with clients&lt;/h4&gt;
&lt;p&gt;Pounce was created in late 2019. It is part of a whole &lt;a href=&#34;https://text.causal.agency/010-irc-suite.txt&#34;&gt;IRC suite&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It saw three releases, 2.1 being the latest. Changes include better client compatibility, docs, support for OpenBSD.&lt;/p&gt;
&lt;h4 id=&#34;quassel-irc&#34;&gt;&lt;a href=&#34;https://quassel-irc.org/&#34;&gt;Quassel IRC&lt;/a&gt; - cross-platform, distributed IRC client with a central core&lt;/h4&gt;
&lt;p&gt;Quassel is a bit unique in how it implements things, but is now aligning with the IRCv3 protocol. Several IRCv3 capabilities were added to Quassel core in late 2020.&lt;/p&gt;
&lt;h4 id=&#34;soju&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/soju&#34;&gt;Soju&lt;/a&gt; – multi-user bouncer&lt;/h4&gt;
&lt;p&gt;Simon Ser started developing the bouncer in February 2020 and managed to quickly attract an active contributor community. Soju supports multiple clients for a single user and connecting to multiple upstream servers via a single connection to the bouncer. Soju comes with a ZNC importer tool. Simon also started contributing to the discussions around IRCv3 specification proposals.&lt;/p&gt;
&lt;h4 id=&#34;znc&#34;&gt;&lt;a href=&#34;https://wiki.znc.in/ZNC&#34;&gt;ZNC&lt;/a&gt; - an advanced bouncer&lt;/h4&gt;
&lt;p&gt;The 1.8.2 release contained a few bug fixes. The next release will have improvements to the channel view of the webadmin.&lt;/p&gt;
&lt;h3 id=&#34;daemons&#34;&gt;Daemons&lt;/h3&gt;
&lt;h4 id=&#34;eris&#34;&gt;&lt;a href=&#34;https://git.mills.io/prologic/eris&#34;&gt;eris&lt;/a&gt; - modern IRC Server / Daemon written in Go that has a heavy focus on security and privacy&lt;/h4&gt;
&lt;p&gt;Support was added for I2P and Tor.&lt;/p&gt;
&lt;h4 id=&#34;inspircd&#34;&gt;&lt;a href=&#34;https://www.inspircd.org/&#34;&gt;InspIRCd&lt;/a&gt; - stable, high-performance and modular&lt;/h4&gt;
&lt;p&gt;Three releases with additions such as options for forcing bots to use NOTICEs instead of PRIVMSGs, and disengaging channel mode j (joinflood) when a server first starts up or splits from the network.&lt;/p&gt;
&lt;h4 id=&#34;ircd-hybrid&#34;&gt;&lt;a href=&#34;https://www.ircd-hybrid.org/&#34;&gt;Ircd-hybrid&lt;/a&gt; - a lightweight, high-performance daemon&lt;/h4&gt;
&lt;p&gt;Six releases were made with changes such as replacing the WATCH implementation with IRCv3.2 MONITOR, implementing client capability negotiation and cap-notify as well as implementing user mode B for bots.&lt;/p&gt;
&lt;h4 id=&#34;miniircd&#34;&gt;&lt;a href=&#34;https://github.com/jrosdahl/miniircd&#34;&gt;miniircd&lt;/a&gt; - a small and limited server with no configuration required&lt;/h4&gt;
&lt;p&gt;Version 2.0 was released with minimum Python requirement bumped to 3.6+.&lt;/p&gt;
&lt;h4 id=&#34;ngircd&#34;&gt;&lt;a href=&#34;https://ngircd.barton.de/&#34;&gt;ngIRCd&lt;/a&gt; – lightweight IRC server&lt;/h4&gt;
&lt;p&gt;Started in 2001, this IRCd is still going strong. Commits went in to improve the build process and to fix a channel listing issue.&lt;/p&gt;
&lt;h4 id=&#34;oragono&#34;&gt;&lt;a href=&#34;https://oragono.io/&#34;&gt;Oragono&lt;/a&gt; - combining the features of an ircd, a services framework, and a bouncer&lt;/h4&gt;
&lt;p&gt;Oragono saw three new releases with highlight additions such as tracking seen/missed messages across multiple devices, authentication of users via external scripts, import support for an Anope or Atheme database. Unreleased changes include an implementation for account renaming (NS RENAME) and improved support for reverse proxies.&lt;/p&gt;
&lt;p&gt;Note: Oragono recently changed its name to &lt;a href=&#34;https://github.com/ergochat/ergo&#34;&gt;Ergo&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;txircd&#34;&gt;&lt;a href=&#34;https://github.com/ElementalAlchemist/txircd&#34;&gt;txircd&lt;/a&gt; - Modular IRCd built using Twisted Python library&lt;/h4&gt;
&lt;p&gt;Some fixes were committed towards the next release.&lt;/p&gt;
&lt;h4 id=&#34;unrealircd&#34;&gt;&lt;a href=&#34;https://www.unrealircd.org/&#34;&gt;UnrealIRCd&lt;/a&gt; - the most widely deployed IRCd&lt;/h4&gt;
&lt;p&gt;Two releases were made with fixes and minor enhancements were released. The next version extends the reputation command to make it easier to look for potential troublemakers.&lt;/p&gt;
&lt;h3 id=&#34;bots&#34;&gt;Bots&lt;/h3&gt;
&lt;h4 id=&#34;bitbot&#34;&gt;&lt;a href=&#34;https://github.com/jesopo/bitbot&#34;&gt;BitBot&lt;/a&gt; – Event-driven modular bot (Python)&lt;/h4&gt;
&lt;p&gt;BitBot v1.20.0 was released in August with several features and fixes, including a ban enforcement module and much better line truncation&lt;/p&gt;
&lt;h4 id=&#34;bot-irc&#34;&gt;&lt;a href=&#34;https://github.com/gryphonshafer/Bot-IRC&#34;&gt;Bot::IRC&lt;/a&gt; (Perl)&lt;/h4&gt;
&lt;p&gt;Two releases were made with improved IPv6 and UTF-8 support&lt;/p&gt;
&lt;h4 id=&#34;botto&#34;&gt;&lt;a href=&#34;https://github.com/strong-code/botto&#34;&gt;Botto&lt;/a&gt; (Node.js)&lt;/h4&gt;
&lt;p&gt;Additions include a reminder module and URL parsing for 4chan, Amazon and Twitter.&lt;/p&gt;
&lt;h4 id=&#34;cardinal&#34;&gt;&lt;a href=&#34;https://github.com/JohnMaguire/Cardinal&#34;&gt;Cardinal&lt;/a&gt; – bot built with Twisted library with a focus on ease of development (Python)&lt;/h4&gt;
&lt;p&gt;Release 3.0.0 added plugins for 8ball, seen, sed correction, ticker for stock information. The plugin support was made to be fully asynchronous and the codebase was migrated to Python 3.&lt;/p&gt;
&lt;h4 id=&#34;cbot&#34;&gt;&lt;a href=&#34;https://github.com/brenns10/cbot&#34;&gt;cbot&lt;/a&gt; - bot with features implemented as dynamically loaded plugins (C)&lt;/h4&gt;
&lt;p&gt;Additions include sqlite database and functions to track users.&lt;/p&gt;
&lt;h4 id=&#34;cloudbot&#34;&gt;&lt;a href=&#34;https://github.com/TotallyNotRobots/CloudBot&#34;&gt;CloudBot&lt;/a&gt; – a simple, fast and expandable bot (Python)&lt;/h4&gt;
&lt;p&gt;Additions towards the next release include support for channel keys.&lt;/p&gt;
&lt;h4 id=&#34;codybot&#34;&gt;&lt;a href=&#34;https://github.com/esselfe/codybot&#34;&gt;Codybot&lt;/a&gt; – a Linux bot with C compilation and shell access (C)&lt;/h4&gt;
&lt;p&gt;Over a dozen releases were made with additions such as an admin list and improved CTCP support.&lt;/p&gt;
&lt;h4 id=&#34;jrobo&#34;&gt;&lt;a href=&#34;https://github.com/BullShark/JRobo&#34;&gt;JRobo&lt;/a&gt; - Advanced bot with tons of features (Java)&lt;/h4&gt;
&lt;p&gt;Support was added for OpenWeatherMap API.&lt;/p&gt;
&lt;h4 id=&#34;kameloso&#34;&gt;&lt;a href=&#34;https://github.com/zorael/kameloso&#34;&gt;kameloso&lt;/a&gt; (D)&lt;/h4&gt;
&lt;p&gt;Two releases were made with new plugins for stopwatch and counter functionality.&lt;/p&gt;
&lt;h4 id=&#34;limnoria&#34;&gt;&lt;a href=&#34;https://limnoria.net/&#34;&gt;Limnoria&lt;/a&gt; - robust, full-featured, and user/programmer-friendly bot (Python)&lt;/h4&gt;
&lt;p&gt;Five releases were made with fixes and documentation updates.&lt;/p&gt;
&lt;h4 id=&#34;mrnodebot&#34;&gt;&lt;a href=&#34;https://github.com/funsocietyirc/MrNodeBot&#34;&gt;MrNodeBot&lt;/a&gt; (Node.js)&lt;/h4&gt;
&lt;p&gt;Various fixes and cleanups went in.&lt;/p&gt;
&lt;h4 id=&#34;pbot&#34;&gt;&lt;a href=&#34;https://github.com/pragma-/pbot/&#34;&gt;PBot&lt;/a&gt; – a pragmatic bot (Perl)&lt;/h4&gt;
&lt;p&gt;Many improvements were made to the embedded scripting language Plang and its documentation.&lt;/p&gt;
&lt;h4 id=&#34;pybot&#34;&gt;&lt;a href=&#34;https://github.com/hlmtre/pybot&#34;&gt;Pybot&lt;/a&gt; – an extensible, modular, configurable, and multi-threaded bot (Python)&lt;/h4&gt;
&lt;p&gt;Version 1.1 was released with cleanups and bug fixes. Unreleased changes include the addition of optional &amp;ndash;nick &amp;ndash;server –channels flags for convenience.&lt;/p&gt;
&lt;h4 id=&#34;sopel&#34;&gt;&lt;a href=&#34;https://sopel.chat/&#34;&gt;Sopel&lt;/a&gt; - lightweight, easy-to-use utility bot (Python)&lt;/h4&gt;
&lt;p&gt;Three releases were made with fixes and compatibility improvements. Unreleased commits include the addition of a .chanlist command to show what channels Sopel is in.&lt;/p&gt;
&lt;h4 id=&#34;wild-irc-bot&#34;&gt;&lt;a href=&#34;https://github.com/WildPHP/irc-bot&#34;&gt;Wild IRC-bot&lt;/a&gt; – an advanced and scriptable bot (PHP)&lt;/h4&gt;
&lt;p&gt;Code cleanups were made and tests were improved.&lt;/p&gt;
&lt;h4 id=&#34;yetibot&#34;&gt;&lt;a href=&#34;https://yetibot.com/&#34;&gt;Yetibot&lt;/a&gt; - extreme chatops bot for Slack and IRC (Clojure)&lt;/h4&gt;
&lt;p&gt;Three releases were made with improvements such as dynamic loading of plugins.&lt;/p&gt;
&lt;h4 id=&#34;yossarian-bot&#34;&gt;&lt;a href=&#34;https://github.com/woodruffw/yossarian-bot&#34;&gt;Yossarian-bot&lt;/a&gt; - an entertaining bot that&amp;rsquo;s easy to extend (Ruby)&lt;/h4&gt;
&lt;p&gt;Two new releases include the addition of a server ID to correctly match data files with a particular server.&lt;/p&gt;
&lt;h3 id=&#34;libraries-frameworks-and-utilities&#34;&gt;Libraries, frameworks and utilities&lt;/h3&gt;
&lt;h4 id=&#34;calculon&#34;&gt;&lt;a href=&#34;https://github.com/c-cube/calculon&#34;&gt;Calculon&lt;/a&gt; – library for writing bots and a collection of plugins (OCaml)&lt;/h4&gt;
&lt;p&gt;Some fixes and cleanups were made.&lt;/p&gt;
&lt;h4 id=&#34;communi&#34;&gt;&lt;a href=&#34;https://communi.github.io/&#34;&gt;Communi&lt;/a&gt; - framework written with Qt (C++)&lt;/h4&gt;
&lt;p&gt;After a four year break between releases, version 3.6.0 was published with lots of compatibility improvements and codebase modernisation.&lt;/p&gt;
&lt;h4 id=&#34;deno-irc&#34;&gt;&lt;a href=&#34;https://github.com/jeromeludmann/deno-irc&#34;&gt;Deno-irc&lt;/a&gt; - client protocol module for Deno (JavaScript)&lt;/h4&gt;
&lt;p&gt;Deno is a new JS runtime created by the creator of Node.js, Ryan Dahl and now there is an IRC library for it!&lt;/p&gt;
&lt;h4 id=&#34;grinch&#34;&gt;&lt;a href=&#34;https://github.com/grinchrb/grinch&#34;&gt;Grinch&lt;/a&gt; - lightly maintained fork of Cinch bot framework (Ruby)&lt;/h4&gt;
&lt;p&gt;After Cinch was declared unmaintained in 2019, Grinch continues to keep it functional. Small fixes were pushed.&lt;/p&gt;
&lt;h4 id=&#34;hellabot&#34;&gt;&lt;a href=&#34;https://github.com/whyrusleeping/hellabot&#34;&gt;HellaBot&lt;/a&gt; - a hella awesome bot framework written in go&lt;/h4&gt;
&lt;p&gt;Improvements were made to SASL authentication handling, IRCv3 user mode compatibility and documentation.&lt;/p&gt;
&lt;h4 id=&#34;hii&#34;&gt;&lt;a href=&#34;https://github.com/nmeum/hii&#34;&gt;hii&lt;/a&gt; – a file-based client inspired by ii&lt;/h4&gt;
&lt;p&gt;Handling of NOTICE and PRIVMSG commands was changed to be distinct.&lt;/p&gt;
&lt;h4 id=&#34;ident-proxy&#34;&gt;&lt;a href=&#34;https://git.sr.ht/~emersion/ident-proxy&#34;&gt;ident-proxy&lt;/a&gt; - forwards requests to multiple backend daemons (Go)&lt;/h4&gt;
&lt;p&gt;Created by Simon Ser to help with running multiple IRC servers on the same machine&lt;/p&gt;
&lt;h4 id=&#34;jaraco-irc&#34;&gt;&lt;a href=&#34;https://github.com/jaraco/irc&#34;&gt;irc&lt;/a&gt; – a full-featured library (Python)&lt;/h4&gt;
&lt;p&gt;Several bug fixes and improvements to the docs and compatibility were made.&lt;/p&gt;
&lt;h4 id=&#34;irc3&#34;&gt;&lt;a href=&#34;https://github.com/gawel/irc3&#34;&gt;irc3&lt;/a&gt; – pluggable client library based on Python&amp;rsquo;s asyncio (Python)&lt;/h4&gt;
&lt;p&gt;Compatibility fixes and cleanups were made.&lt;/p&gt;
&lt;h4 id=&#34;irc-framework&#34;&gt;&lt;a href=&#34;https://github.com/kiwiirc/irc-framework&#34;&gt;irc-framework&lt;/a&gt; – for bots and full clients (Node.js)&lt;/h4&gt;
&lt;p&gt;Release 4.9.0 made it so from_server property is included in action/ctcp/privmsg/tagmsg events.&lt;/p&gt;
&lt;h4 id=&#34;ircrobots&#34;&gt;&lt;a href=&#34;https://github.com/jesopo/ircrobots&#34;&gt;ircrobots&lt;/a&gt; Asynchronous bare-bones IRC bot framework (Python)&lt;/h4&gt;
&lt;h4 id=&#34;ircstates&#34;&gt;&lt;a href=&#34;https://github.com/jesopo/ircstates&#34;&gt;ircstates&lt;/a&gt; sans-I/O IRC session state parsing library (Python)&lt;/h4&gt;
&lt;h4 id=&#34;irctokens&#34;&gt;&lt;a href=&#34;https://github.com/jesopo/irctokens&#34;&gt;irctokens&lt;/a&gt; RFC1459 and IRCv3 protocol tokeniser library (Python)&lt;/h4&gt;
&lt;p&gt;Jess published these projects in spring 2020 and all of them were actively refined throughout the year.&lt;/p&gt;
&lt;h4 id=&#34;kitteh-irc-client-library&#34;&gt;&lt;a href=&#34;https://kitteh.org/&#34;&gt;Kitteh IRC Client Library&lt;/a&gt; (Java)&lt;/h4&gt;
&lt;p&gt;Release 7.3.0 fixed a reconnection issue.&lt;/p&gt;
&lt;h4 id=&#34;nibblrjr&#34;&gt;&lt;a href=&#34;https://nibblr.pw/&#34;&gt;Nibblrjr&lt;/a&gt; - bot framework for creating custom behaviour dynamically (Node.js)&lt;/h4&gt;
&lt;p&gt;Various fixes and tweaks were made.&lt;/p&gt;
&lt;h4 id=&#34;pircbotx&#34;&gt;&lt;a href=&#34;https://github.com/pircbotx/pircbotx&#34;&gt;PircBotX&lt;/a&gt; – library with IRCv3 CAP negotiation support (Java)&lt;/h4&gt;
&lt;p&gt;Received a couple of fixes.&lt;/p&gt;
&lt;h4 id=&#34;pydle&#34;&gt;&lt;a href=&#34;https://github.com/Shizmob/pydle&#34;&gt;Pydle&lt;/a&gt; – IRCv3-compliant library (Python)&lt;/h4&gt;
&lt;p&gt;Fixes were made to IRCv3 tags parsing among other areas.&lt;/p&gt;
&lt;h4 id=&#34;pylink&#34;&gt;&lt;a href=&#34;https://github.com/jlu5/PyLink&#34;&gt;PyLink&lt;/a&gt; - multi-network IRC Services &amp;amp; server-side relayer&lt;/h4&gt;
&lt;p&gt;PyLink developer James Lu is looking for new maintainers for his ambitious project. More information on the situation can be read in &lt;a href=&#34;https://jlu5.com/blog/the-trouble-with-pylink&#34;&gt;his blog post&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;the-irc-crate&#34;&gt;&lt;a href=&#34;https://github.com/aatxe/irc&#34;&gt;The irc crate&lt;/a&gt; - thread-safe and async-friendly client library (Rust)&lt;/h4&gt;
&lt;p&gt;Some fixes and tweaks were made.&lt;/p&gt;
&lt;h3 id=&#34;bridges&#34;&gt;Bridges&lt;/h3&gt;
&lt;h4 id=&#34;bitlbee&#34;&gt;&lt;a href=&#34;https://www.bitlbee.org/&#34;&gt;BitlBee&lt;/a&gt; – gateway to other chat networks&lt;/h4&gt;
&lt;p&gt;The Facebook plugin saw a new release with a couple of crucial fixes and the main application got build process improvements.&lt;/p&gt;
&lt;h4 id=&#34;discord-irc&#34;&gt;&lt;a href=&#34;https://github.com/reactiflux/discord-irc&#34;&gt;discord-irc&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;October’s 2.9.0 release brought big compatibility improvements with the Discord API&lt;/p&gt;
&lt;h4 id=&#34;irc-slack&#34;&gt;&lt;a href=&#34;https://github.com/insomniacslk/irc-slack&#34;&gt;irc-slack&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;Alongside bug fixes and refactoring, multi-factor authentication support and a user cache were added.&lt;/p&gt;
&lt;h4 id=&#34;matterbridge&#34;&gt;&lt;a href=&#34;https://github.com/42wim/matterbridge&#34;&gt;matterbridge&lt;/a&gt; - bridges between a growing number of protocols&lt;/h4&gt;
&lt;p&gt;This ambitious bridge project had seven releases. Support was added for Nextcloud Talk and Mumble and stateless IRC bridging via draft/relaymsg.&lt;/p&gt;
&lt;h4 id=&#34;teleirc&#34;&gt;&lt;a href=&#34;https://github.com/RITlug/teleirc&#34;&gt;teleirc&lt;/a&gt; – bridge to Telegram&lt;/h4&gt;
&lt;p&gt;Two releases included fixes and the addition of the ability to filter out messages with a configurable prefix.&lt;/p&gt;
&lt;h3 id=&#34;services&#34;&gt;Services&lt;/h3&gt;
&lt;p&gt;Taking care of user accounts and channels among other things.&lt;/p&gt;
&lt;h4 id=&#34;anope&#34;&gt;&lt;a href=&#34;https://www.anope.org/&#34;&gt;Anope&lt;/a&gt; – highly modular set of services&lt;/h4&gt;
&lt;p&gt;Two releases were made with fixes and improvements to ircd-hybrid and InspIRCd modules&lt;/p&gt;
&lt;h4 id=&#34;atheme&#34;&gt;&lt;a href=&#34;https://atheme.github.io/&#34;&gt;Atheme&lt;/a&gt; - for large networks with high scalability requirements&lt;/h4&gt;
&lt;p&gt;Commits for the next release include adding a silent rejection feature and no subsequent vhost requests feature.&lt;/p&gt;
</description>
      <category>IRC</category>
    </item>
    
  </channel>
</rss>
 
