📜 ⬆️ ⬇️

FTN-based messenger



Yes, this thing can work on a modem or through a shared folder (filebox). Rather, while only TCP or UDP, but the groundwork is already there. IM functionality at the level of early ICQ - only the exchange of messages and contacts. But inside there is an exchange between nodes, group chats (analog of IRC), mail, files.


')

What is it all about?



Distributed Network Messaging Protocol - Well Forgotten FTN

The Talaria project has lain for two years without movement (as unnecessary), but more recently, due to bad events and unhappy prospects in the field of communications, it has slowly come to life and moves on. It became truly cross-platform (thanks to Lazarus), much was rewritten with a fresh mind, several new ideas were 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 can be your own variants of messages - commands, data, etc ...

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

- Vector addressing. The address number (node ​​number, for example) is 4 bytes long. This length is called a vector segment. If the high-order bit is 1, another segment is added (the length of the number increases by 4 more bytes). If the second bit of the second vector segment is 1, then another segment is added. And so on. That is, the length of the address is almost unlimited.

- WebAPI + static set to use via browser.

Where to look?



Sources and documentation

Sources on FreePascal, for compilation you need a fresh Lazarus and Synapse library

Why Pascal, not C or Java? So historically, and until there was a good reason to change it.

Binary
The 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 to compile from source.

serbod.com/doku.php?id=talaria


How can I help you?



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

- We need constructive criticism. If you do not like something, tell me how to improve it.

- We need volunteers bug descriptors and search finders. For example, write a message encryption or modem link. Or poke my nose at the mistake.

Source: https://habr.com/ru/post/238575/


All Articles