Протокол для безопасной и децентрализованной (федерация и P2P) коммуникации общего назначения, способный работать поверх достаточно широкого спектра поддерживаемого транспорта, в том числе подразумевающего обфускацию траффика. Предоставляет возможность установки защищённого канала между двумя машинами и построения как сервер-клиентной модели, так и P2P меш-сети; поддерживает кастомизируемое шифрование, DHT, вкупе с пользовательскими расширениями, позволяющими подгонять протокол под конкретные цели и нужды.
В рамках этого проекта предполагается создание спецификации протокола, библиотеки libstadium, с его эталонной реализацией на C++, а также нескольких других библиотек с его реализацией на иных языках.
Большинство современных протоколов предполагают либо привязку к какому-то конкретному транспорту, либо вносят значительный оверхэд при передаче данных, либо плохо скалируются и/или ограничены в какой-то иной плоскости. Мы-же хотим сделать универсальное решение, которое будет достаточно хорошо работать в большинстве ситуаций и способно стать заменителем части мейнстримных стандартов.
Изначально перед нами стояла совершенно иная задача - сделать федеративный мессенджер (который тоже является одним из наших проектов). Но, в процессе его продумывания, мы пришли к выводу, что ни одно из существующих решений не удовлетворяет нашим требованиям. Нам было необходимо решение свободное от привязки к какому-то конкретному виду транспорта (особенно если этот транспорт высокоуровневый) и при этом позволяющее осуществлять взаимодействие между узлами в условиях низкой пропускной способности канала связи.
В результате, мы остановились на варианте создания собственного протокола, максимально удовлетворяющего нашим требованиям и не только.
Работа над основной версией библиотеки ведётся на C++. Также мы заинтересованы в создании имплементаций на языках C99, C# (Mono), Java, биндингов для Go, Python, Nim, Lua и Zig.
Спецификация первой версии: Январь 2024
Библиотека libstadium версии 1.0: Март 2024
Эта часть будет обновляться по мере продвижения и изменений планов.
Репозитории: спецификация (Tor), libstadium (Tor)