public
Description: Erlang IRC client/server framework
Clone URL: git://github.com/archaelus/erlirc.git
erlirc /
name age message
file .gitignore Mon Sep 01 13:36:18 -0700 2008 Additional files to ignore in git. [archaelus]
file COPYRIGHT Sat Jun 02 02:18:22 -0700 2007 Adding a copyright file now that this code is p... [archaelus]
file Emakefile Thu Oct 30 11:22:29 -0700 2008 Better make system. [archaelus]
file Makefile Thu Oct 30 11:22:29 -0700 2008 Better make system. [archaelus]
file Makefile.local Mon Sep 17 01:20:26 -0700 2007 Adding an ngircd make target for testing. [archaelus]
file README.rst Fri Nov 07 09:00:10 -0800 2008 Expanding the README to include information on ... [archaelus]
file TODO Sun May 27 21:40:35 -0700 2007 Adding a todo list. [archaelus]
directory doc/ Wed Aug 08 05:02:59 -0700 2007 Adding an example erl irc session as the README... [archaelus]
directory include/ Sun Nov 02 12:18:25 -0800 2008 Giving #chan(s) pids instead of info. [archaelus]
directory misc/ Sat Dec 01 19:44:41 -0800 2007 Moving irc_numeric.pl to misc/. [archaelus]
directory priv/ Sat Jun 09 23:09:41 -0700 2007 Adding an empty config file for erlirc nodes. [archaelus]
directory src/ Sun Nov 02 15:32:37 -0800 2008 Fix s2c exit protocol. [archaelus]
README.rst

ErlIRC - An Internet Relay Chat framework for Erlang

ErlIRC is a framework for writing IRC clients, servers, proxies and bots in Erlang.

Example Use

IRC Server

Run erl -name erlirc -pa ebin and run the following commands in the erlang shell:

(erlirc@bete.ran)1> irc_app:start().
<SASL reports snipped>
(erlirc@bete.ran)2> {ok, Server} = irc_sup:start_server("localnet","localhost").
<SASL reports snipped>
{ok,<0.54.0>}
(erlirc@bete.ran)3> irc_server:listen(Server, 16667).
{ok,<0.56.0>}

Then from another bash console, telnet to the new server and send it IRC commands:

telnet localhost 16667
NICK test
USER test test localhost :Test User
JOIN :#test

IRC Client

Run erl -name client -pa ebin and run the following commands in the erlang shell:

(erlirc@bete.ran)1> {ok, C} = irc_client_fsm:start_link("erlirc","localhost", 16667).
{ok,<0.61.0>}
=INFO REPORT==== 7-Nov-2008::17:54:26 ===
(<0.61.0> irc_client_fsm:149) :localhost 001 erlirc :Welcome to the Internet Relay Network erlirc!erlirc@127.0.0.1
=INFO REPORT==== 7-Nov-2008::17:54:26 ===
(<0.61.0> irc_client_fsm:157) :localhost 002 erlirc :Your host is localhost, running version erlirc-0.1
=INFO REPORT==== 7-Nov-2008::17:54:26 ===
(<0.61.0> irc_client_fsm:157) :localhost 003 erlirc :This server was created 2008-11-07T16:54:26+00
=INFO REPORT==== 7-Nov-2008::17:54:26 ===
(<0.61.0> irc_client_fsm:157) :localhost 004 erlirc localhost erlirc-0.1 aios biklImnoPstv
=INFO REPORT==== 7-Nov-2008::17:54:26 ===
(<0.61.0> irc_client_fsm:153) :localhost 422 erlirc :NOMOTD

Note that the erlirc server and client don't quite agree enough at the moment to successfully join channels.