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