KISS for IRC (kirc): A tiny IRC client written in POSIX C99. reddit / irc ---------------------------------------------------------------------- mcpcpc · 2020-09-24 14:05 This is a personal project of mine that started out as a means of developing my C programming skills. The end result a highly usable and portable IRC client. Thought I should share this in case anyone was on the market for a "simpler" solution. Enjoy! ---------------------------------------------------------------------- figboot_dev · 2020-09-24 17:43 Wow, this client looks sick. Specifying connection parameters on the command line is cool. Could you tee or pipe the output into a file? ---------------------------------------------------------------------- mcpcpc · 2020-09-24 18:59 Thanks! All text is written to `stdin` and `stdout` file descriptors, so I imagine `tee` and `pipe` would work fine. Although there is already built-on logging capability, which can be specified with the `-o ` argument. This most likely would be preferred since it won't log every instance of PING/PONG. ---------------------------------------------------------------------- fstd_ · 2020-09-24 19:49 Hmm... has a thing for portability, likes C99, decides to write IRC stuff to develop C skills, uses for (;;) instead of while (1)... I conclude you are literally me. Do you want a heads-up on how it's going to end? ---------------------------------------------------------------------- rro99 · 2020-09-24 20:07 Neat. For those that haven't used it though this will require a little knowledge about how the IRC protocol works, as its just mostly dumping the raw protocol to stdout, and sending your raw input to the server unaltered, so your familiar commands like /topic heres a topic Become /topic #channel :heres a topic I also have a pretty small IRC client written in POSIX C99 that's a little more user friendly https://github.com/rcr/rirc ---------------------------------------------------------------------- rro99 · 2020-09-24 20:09 > Do you want a heads-up on how it's going to end? This looks like the first couple weeks of my C99 IRC client which was a learning project, and here I am still working on it occasionally ~7 years later. I just added native TLS in the last couple months. ---------------------------------------------------------------------- mcpcpc · 2020-09-24 20:12 please do share! lol. I started this “adventure” a little over a month ago, so any “heads-up” advice would be greatly appreciated =P. ---------------------------------------------------------------------- mcpcpc · 2020-09-24 20:26 I actually started out with _tons_ of custom commands to make it easier for the user, but decided to scrap most of them. I still have plans to add a few of the most common ones back in, but I actually think there is a lot to gain for people to learn a bit of the protocol! I may end up doing a small write up to support the client. Also, it’s great to meet a fellow client developer! I actually stumbed across `rirc` before deciding to write my own. ---------------------------------------------------------------------- rro99 · 2020-09-24 20:55 It's a great start. Some of the specs are a little grandiose and disingenuous though, haha. > IPv6 support. Because you passed the default parameters to getaddrinfo? > TLS/SSL capable If you pipe it through an external TLS utility? > Chat history logging If you pipe the output to a file? ---------------------------------------------------------------------- mcpcpc · 2020-09-24 21:08 I appreciate the feedback. i can definitely _clarify_ the specs. lol! Regarding the _chat history logging_, you can pass the `-o ` to log to a plain text file. ---------------------------------------------------------------------- mcpcpc · 2020-09-24 21:53 Updated the `README.md` to hopefully sound me _realistic_ ;). ---------------------------------------------------------------------- rro99 · 2020-09-24 22:22 Ah, missed that. Otherwise well done, looks great! ---------------------------------------------------------------------- mcpcpc · 2020-09-25 00:49 (Follow up from my previous comment) For fun, I just wrote this wiki article to help new users with the “basics”: https://github.com/mcpcpc/kirc/wiki/IRC-Protocol-Primer ---------------------------------------------------------------------- [deleted] · 2021-03-22 11:10 [removed]