This month (May 2019) UnrealIRCd celebrates its 20th birthday. I’m involved with the project for 18 years now. I feel dedicated to the project and feel a responsibility to IRC as a whole. Still, I think the people who really deserve a thanks are the people who support the project by running IRC servers, providing feedback, helping others and of course everyone who uses IRC today. Without you, there would be no UnrealIRCd!
For those who are interested, I will tell something about the history of the project, or at least my view on it. I will finish by briefly touching on the future, UnrealIRCd 5.
The birth of the project
UnrealIRCd was founded by Stskeeps in May 1999. I was not involved with the first 2 years of the project so that makes it a bit difficult for me to write about this. In any case, a significant point was when UnrealIRCd 3.0.x and 3.1.x came out in the year 2000. The latter, UnrealIRCd 3.1.x, was already quite popular and some old users may still remember it.
In 2001 I got involved as a coder with the UnrealIRCd project, joining Stskeeps and codemastr as head coders. This was at a time when 3.2.x was very much under development and the first beta’s came out. It took almost 3 years from the first beta to the first stable release. In fact, the development period was so long that many people started running beta versions on their production network. After the first stable release in 2004 the series were maintained for 12 years. It was UnrealIRCd 3.2.x that made us conquer the market, resulting in a market share of over 50%. Feature-wise 3.2 brought a completely new configuration file, unlike all other IRC Daemons, which made us very flexible. Other notable major features were: support for modules, anti-flood features like channel mode +f and spam filtering.
The development stall
Then comes a period that I have mixed feelings about. There were many satisfied UnrealIRCd 3.2.x users and indeed 3.2.x was great and very stable as well, in fact it was our most successful series. At the same time, it was also clear for us developers that UnrealIRCd 3.2.x could not live on forever. The source code contained too many “quirks” and needed major restructuring. We couldn’t do such restructuring within the 3.2.x series because that would affect the stability of the server (and other reasons). So after a while UnrealIRCd 3.2.x entered a stage where it became “bugfix only” with few new features being added. Various attempts were made to work on a successor series and failed. This was also the moment that a number of people left the project due to lack of progress and the state of codebase at the time, for which I cannot blame them. I myself was out of the running for a while as well due to wrist issues. In fact, I even briefly resigned my position as maintainer but I came back after a few months.
In 2013 I realized it was a “now or never” situation. A survey was held among our users to learn what they found important. Then, a few months later, in 2014, I decided to lead the development on the new series myself. Heero and nenolod helped and a lot of development effort took place.
Looking at the 4.0.0 release in December 2015 and the subsequent 4.x updates that followed I think I can say 4.x was a big move forward. We received a lot of positive feedback. The documentation was improved and things were a lot more “consistent” and “logical” due to the many configuration changes. Naturally there were a lot of new features and enhancements, but the thing that made the most difference would be the many security enhancements, such as: DNSBL checking, rate- and target-limiting of commands, the new reputation and connthrottle features to fight off drone attacks, and many more. These make IRC a more peaceful place with “less noise”, both for administrators and end-users.
Recently development was started on UnrealIRCd 5 and last week Gottem and ‘i’ joined the coding team. Possibly we will welcome more coders later. There are some major changes in the source code going on that will enable us to implement a lot more IRCv3 features. Of course, there will be other new features and enhancements as well. For end-users, and in particular people new to IRC, this should bring a more positive IRC experience. At this point in time, I don’t want to go into much details about the exact features UnrealIRCd 5 will contain, until we have a more complete picture and the development work is at a more advanced stage.
The negative side of this is that the source code changes will affect all modules. All 3rd party modules will require code changes. When the time comes, we will assist module coders where necessary with suggestions and help. The popular 3rd party modules from Gottem will get an update for sure, no worries about that.
With previous major upgrade, when upgrading from UnrealIRCd 3.2.x to UnrealIRCd 4.x, there were a lot of configuration items that were changed. I can reassure everyone that the upgrade from 4.x to 5.x will be no where like that. It should be a seamless upgrade from UnrealIRCd 4.x to UnrealIRCd 5.x with only few mandatory configuration changes, if any.
So can we see the code? Can we run it or connect to a test server? No, not yet. However, I do expect a release in some shape or form in Q3 2019 already.