socktroll

A simple chat protocol some friends at Lysator and I created to as en exercise in network programming in diffrent languages.

Since the initial version there have been at least three 'pure' servers, and a some expanded ones. The currently recommended version is socktroll-elixir, but socktroll-py below is quite easy to follow.

Socktroll-py also contains an updated version of the GTK client.

Releases:

socktroll-py-0.0.3 Contains a bot, an GTK based client and the most "advanced" server yet. Would say it's surpassed by the elixir implementation.

Servers:

socktroll.py-0.0.1 (Legacy)

Clients:

socktrollc-beta (Python GTK, old)
socktroll-cpp-0.0.1
obo-0.0.1 (bot, OLD)

Other:

BNF document, but you can read it in whole here:

<message> ::= ( <nick> | <nick-answer> | <rename> | <names> ) <LF>
           |  ( <names-answer> | <quit> | <join> | <part> ) <LF>
           |  ( <message> | <message-answer> | <action> ) <LF>
           |  ( <action-answer> | <illegal> ) <LF>

<nick> ::= "nick" <nickname>

<nick-answer> ::= ( "ok" <nickname> | "no" ( "taken" | "bad" ) )

<rename> ::= "rename" <nickname> <nickname>

<names> ::= "names"

<names-answer> ::= <nickname>
               |   <nickname>,?<nickname>*,<nickname>

<quit> ::= "quit"

<join> ::= "+" <nickname>

<part> ::= "-" <nickname>

<message> ::= "msg" <unicode-string-450>

<message-answer> ::= "msg" <nickname> <unicode-string-450>


<action> ::= "action" <unicode-string-450>

<action-answer> ::= "action" <nickname> <unicode-string-450>

<illegal> ::= "illegal command"

<nickname> ::= <unicode-string-40>

License: GPL v3 or newer.

2016-06-24