FTN-based messenger

    Yes, this thing can work by modem or through a shared folder (filebox). Rather, so far only TCP or UDP, but there are already achievements. IM functionality at the early ICQ level - only messaging and contacts. But inside there is an exchange between nodes, group chats (analogue of IRC), mail, files.

    What is this all about?

    Distributed Network Messaging Protocol - well-forgotten FTN

    The Talaria project has been lying motionless for two years (as unnecessary), but recently, due to bad events and bleak prospects in the field of communications, it has come to life and is moving on. It has become truly cross-platform (thanks to Lazarus), a lot has been rewritten with a fresh mind, several new ideas have been implemented:

    - All transmitted objects are serialized, you can choose a serializer (XML, JSON, BENCODE). The default is BENCODE.

    - Message types correspond to message handlers. And inside the type (handler) there may be your own message options - commands, data, etc. ...

    - You can use the nodes as a transport for standard IP protocols (FTP, HTTP, POP, etc. ..) if you emulate IP connections. There are many options - for example, wrap control connections in DNMP, and send data over IP. That is, something like in SIP - first, the parties report about themselves and about open ports through a network of nodes, and then they connect peer-to-peer (directly to each other) or through a relay node.

    - Vector addressing. The address number (node ​​number, for example) is 4 bytes long. This length is called the segment of the vector. If the most significant bit is equal to 1, then another segment is added (the number length increases by another 4 bytes). If the second bit of the vector has the highest bit equal to 1, then another segment is added. Etc. That is, the length of the address is almost unlimited.

    - WebAPI + statics set to use through the browser.

    Where to look?

    Sources and documentation

    Sources on FreePascal, to compile you need fresh Lazarus and the Synapse library

    Why Pascal, not C or Java? This has historically happened and until there is no good reason to change this.

    Binaries are still very very raw, use at your own risk. There is a trial version for Windows x86 and Linux x86. If you need other platforms, try compiling yourself from the source.


    How can I help you?

    - Need an icon for the program - a boot with wings. Several sizes starting from 16x16.

    - Need constructive criticism. If you don’t like something, tell me how to improve it.

    - Volunteers bug recorders and bug seekers are needed. For example, write a message encryption or a link for the modem. Or poke my nose in error.

    Also popular now: