Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров15K


Да, эта штука сможет работать по модему или через общую папку (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.

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

— Нужны добровольцы багописатели и багоискатели. Например, написать шифровалку сообщений или линк для модема. Или ткнуть меня носом в ошибку.
Теги:
Хабы:
Всего голосов 47: ↑38 и ↓9+29
Комментарии29

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань