Мессенджер на базе FTN-технологий

Да, эта штука сможет работать по модему или через общую папку (filebox). Вернее, пока только TCP или UDP, но наработки уже есть. Функционал IM на уровне ранней аськи — только обмен сообщениями и контактами. Но внутри есть обмен между узлами, групповые чаты (аналог IRC), почта, файлы.

Что это вообще такое?

Distributed Network Messaging Protocol — хорошо забытый FTN

Проект Talaria два года пролежал без движения (за ненадобностью) но с недавних пор в связи с нехорошими событиями и нерадостными перспективами в области связи потихоньку ожил и двигается дальше. Он стал по-настоящему кроссплатформенным (благодаря Lazarus), многое было переписано на свежую голову, реализовано несколько новых идей:

— Все передаваемые объекты сериализуются, можно выбрать сериализатор (XML, JSON, BENCODE). По умолчанию используется BENCODE.

— Типы сообщений соответствуют обработчикам сообщений. А внутри типа (обработчика) могут быть свои варианты сообщений — команды, данные, итд…

— Можно использовать узлы как транспорт для стандартных IP-протоколов (FTP, HTTP, POP, итд..) если эмулировать им IP-соединения. Вариантов много — например, управляющие соединения заворачивать в DNMP, а данные отправлять по IP. То есть, примерно как в SIP — сначала стороны сообщают о себе и об открытых портах через сеть узлов, а потом соединяются peer-to-peer (напрямую друг с другом) или через узел-ретранслятор.

— Векторная адресация. Номер адреса (номер ноды, например) имеет длину 4 байта. Эта длина называется сегментом вектора. Если старший бит будет равен 1, то добавляется еще сегмент (длина номера увеличивается еще на 4 байта). Если у второго сегмента вектора старший бит равен 1 то, добавляется еще сегмент. И так далее. То есть, длина адреса практически неограничена.

— WebAPI + набор статики, чтобы пользоваться через браузер.

Где посмотреть?

Исходники и документация

Исходники на FreePascal, для компиляции нужен свежий Lazarus и библиотека Synapse

Почему Паскаль, а не Си или Ява? Так исторически сложилось и пока не нашлось веской причины это менять.

Бинарники

Бинарники пока еще очень-очень сырые, используйте на свой страх и риск. Есть пробная версия для Windows x86 и Linux x86. Если нужны другие платформы — попробуйте сами скомпилить из исходников.

serbod.com/doku.php?id=talaria

Чем помочь?

— Нужна иконка для программы — ботинок с крыльями. Несколько размеров, начиная с 16х16.

— Нужна конструктивная критика. Если вам что-то не нравится, подскажите как это улучшить.

— Нужны добровольцы багописатели и багоискатели. Например, написать шифровалку сообщений или линк для модема. Или ткнуть меня носом в ошибку.

ссылка на оригинал статьи http://habrahabr.ru/post/238575/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *