tokenrove / pircd

the perl irc daemon

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

                                  _                _ 
                           _ __  (_) _ __  ___  __| |
                          | '_ \ | || '__|/ __|/ _` |
                          | |_) || || |  | (__| (_| |
                          | .__/ |_||_|   \___|\__,_|
    _   _                 |_|    _   _             _   
   | |_| |_  ___   _ __  ___ _ _| | (_)_ _ __   __| |__ _ ___ _ __  ___ _ _  
   |  _| ' \/ -_) | '_ \/ -_) '_| | | | '_/ _| / _` / _` / -_) '  \/ _ \ ' \ 
    \__|_||_\___| | .__/\___|_| |_| |_|_| \__| \__,_\__,_\___|_|_|_\___/_||_|
                  |_|                  http://github.com/jkominek/pircd
                                    by jay kominek (kominek@gmail.com)
                                       julian squires (julian@cipht.net)
                                       et al

 Yes.
 It really is an IRC daemon.
 It's written in Perl.
 ...
 You can breathe again.
 There. Very good.

*** Pre-introduction

 I thought I'd pull this onto github, from sourceforge, where it had
lingered for more than a decade. I doubt I'll do anything with it
(though I updated the email addresses in it), but now at least if
anyone starts making modifications, the features of github will let
others find them more easily.

 Over the years a number of folks (certainly more than I ever expected
when I first started working on it) wrote me to thank me. I'm glad it
helped people. I hope it can continue to do so.

 For what it's worth, I'm against pull requests. I'll be flattered
that you're interested, but I almost certainly will not be able to deal
with them in a timely fashion.

*** Introduction

 pircd is an IRC daemon written in Perl. I wrote it after realizing that Perl
is the right language for IRC. IRC is chock full of various strings and other
what not, all of which is easily parsed by Perl, where the C IRC daemons jump
through all kinds of hoops and have really nasty looking code (have you ever
looked at the Undernet IRC daemon? I gave up on trying to figure out how their
extensions to the protocol work by looking at the code.) Whereas pircd is, in
my opinion, very clean. Messages from the user are dispatched to the
appropriate code via a lookup table to subroutine references, no excessively
large if..elsif..else structure, no conversion of the strings into something
that they are not (numeric values, if I remember how ircu does it).

 pircd is now reasonably complete. It lacks STATS output with any relation
to reality, and interserver communication. As of this writing, it is 3810
lines long (counting comments and everything). I do not anticipate it getting
past twice that with the addition of the remaining features. (interserver
communication being the big one.)

 If you would like to know more about how pircd operates internally, please
consult the included file, 'INTERNALS'.

*** SSL

 pircd is one of very few IRC servers which support SSL. There are a few
IRC clients out there which even support SSL, themselves.  We don't yet any
have sort of support for the verification of SSL certificates, though.
(Optimally, opers would be required to have a certificate on file with the
server in order to be allowed gain oper-status. But that is a ways off,
at this point.)

*** Requirements

 * Perl 5.004 and later.
 * The following Perl modules:
    Fcntl, Getopt::Long, IO::Select, IO::Socket,
    POSIX, Sys::Syslog, Tie::RefHash, UNIVERSAL
    IO::Socket::SSL if you want to use SSL
     In the future, I may make use of Compress::Zlib, also
     I imagine its use will be optional.
 * A computer
 * A port that you can bind to, preferably 6667

- Jay Kominek <kominek@gmail.com>
  Hail Eris!

About

the perl irc daemon

License:Other


Languages

Language:Perl 100.0%