Tuesday, February 20, 2007

How Eldora will differ from a BNC

Bohemel asked the obvious question "What is the difference between this application and an ordinary bnc?". I will try to explain it in this post.

During the years I have tried many different IRC bouncers, but none has satisfied me. As I see it, the problem is how the client communicates with the BNC, the IRC protocol is not flexible enough. As an example, when you connect to a BNC, you receive log messages from the channels you are in, but they are time-stamped with the current time. You can not tell if a channel has new messages or not, since all received messages are "new" to the IRC client.

The two solutions to this problem which I have found is:
    1. Extend the IRC protocol with additional features.
    2. Create a new protocol.
I have chosen the second solution because it offers more flexibility.
    IRC Client < --IRC protocol--> BNC < --IRC Protocol--> IRC Server(s)

    Eldora Client < --Eldra protocol--> Eldora server < --IRC Protocol--> IRC Server(s)
The Eldora protocol is similar to the IRC protocol, but adds additional features, such as separation of new messages and previously read messages. So when a Eldora client connects to the server, it can request n lines of log for each open channel and private chat. The messages will be time-stamped at the correct time (which often is a problem with BNCs, since IRC messages are time-stamped by the receiving client). It will also support various window managing commands, so if one client closes a window, or rearranges a window, it will propagate to all connected clients.

No comments: