It’s been some time since I wrote my last blog post. Actually it’s been so long that I’ve reached day 100 of my GitHub streak (yay!) And that is also the point at which I’ve decided to make a stable release of the IRC package.
degesch (the client) is basically finished now. It has all the most important features that you would expect of an IRC client and seems to run pretty well. Originally I thought that it’d be at worst a month-long project, but what did I know! In the end it’s one of the largest things I’ve ever written, with something like 12 thousand lines of C code written over the span of about three months.
Here’s a short animation to give you an idea of what using the client feels like (the colours turned up too bright in the GIF for whatever reason):
Right now there are no binary packages, however you can compile the client from source (see the README). Eventually I plan to generate packages for all my projects automatically, and get them included in Linux distributions, but it’s not exactly a trivial task.
So, what happens now? First of all, active development is paused. There are only a few features that I actually consider missing from the end product and I have better things to do now. So the current focus becomes fixing bugs and getting feedback from early users.
Actually, I have two tangentially related things I’d like to add to the project in the near future:
Write a better alternative to Tcl expect and use it to improve the current end-to-end test suite. I’d like to try writing it in Rust, using Lua as the scripting language.
Write a stress-test tool for the IRC daemon. For this thing, I’d like to use either Elixir or Erlang, since the platform seems to be made for this kind of thing.
I can’t really program in either of those programming languages, so it’s going to be a pretty painful experience trying to get something real out, I guess. :) I need to learn something other than C eventually, though. The language is starting to make me feel a little bit too constrained at times.