Marafon

Свободный мессенджер с фокусом на федеративность и кастомизируемое E2EE. Основан на протоколе Stadium и предлагается как устойчивый к цензуре, децентрализованный и совместимый со всеми мажорными оверлейными сетями (Tor, I2P, yggdrasil) аналог современных проприетарных продуктов. Помимо прочего, также поддерживает аудио- и видео-трансляции с настраиваемыми параметрами кодировки потоков. Проект включает в себя разработку расширения протокола - Marafon SPX; сервера (Runner); клиентов (десктопной и веб-версии); и библиотек на разных языках программирования.

Мотивация

Ранее нам приходилось использовать несвободные мессенджеры, типа Telegram и Discord, но экспириенс от такого - оставлял желать лучшего. Источниками того служат низкая стабильность, цензура, расточительное использование ресурсов, да и банальное неудобство, от интерфейса до API, причём, с каждым годом ситуация усугубляется. В какой-то момент, после некоторого изучения темы, к этим причинам ещё добавились слежка, централизованность и проприетарность. Последние две, помимо моральных аспектов, затрагивают также и практический: вышеописанные проблемы невозможно исправить даже в минимально-полной мере, именно в силу закрытости и привязанности к конкретным серверам.

В свою очередь, открытые аналоги, типа Matrix и XMPP, не могут служить исчерпывающими решениями и заменителями несвободных поделий. Оба этих протокола страдают от множества проблем, в число которых входит та-же требовательность к ресурсам, в сочетании с отсутствием достаточного функционала: создать проработанную инфраструктуру для крупного сообщества тут особо не получится. И насколько, по сравнению с XMPP, в Matrix лучше в плане функционала (не очень сильно, но всё-же лучше) - настолько она и хуже в плане приватности, вдобавок, с разработчиками и прочими организаторами связан сомнительный контекст.

Какое-то время идея создания собственного мессенджера откладывалась, исходя из нехватки времени и знаний. Когда-же ситуация разрешилась к лучшему - мы начали работать в этом направлении, в результате чего пришли к следующей формуле: федерация + E2EE + устойчивость к блокировкам + обширная инфраструктурная кастомизация.

Стек

Основная часть разработки, в том числе над эталонной библиотекой libmarafon, ведётся на языке C++. В качестве БД для сервера Runner берётся PostgreSQL, а для интерфейса десктопного клиента - библиотека wxWidgets. Для веб-версии клиента, мы предсказуемо используем HTML5, CSS3 и JS.

Ещё мы заинтересованы в создании реализаций библиотек на языках C99, C# (Mono), Java, биндингов для Go, Python, Nim, Lua и Zig.

Дедлайны

Спецификация расширения протокола: Февраль 2024
Библиотека libmarafon бета-версия: Август 2024
Сервер Runner бета-версия: Август 2024
Нативный клиент бета-версия: Август 2024
Нативный клиент релиз 1.0: Ноябрь 2024

Роадмап

Эта часть будет обновляться по мере продвижения и изменений планов.

На данном этапе основный фокус ведётся на разработку протокола.