Мессенджер на базе 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.
— Нужна конструктивная критика. Если вам что-то не нравится, подскажите как это улучшить.
— Нужны добровольцы багописатели и багоискатели. Например, написать шифровалку сообщений или линк для модема. Или ткнуть меня носом в ошибку.