Проект «Ласточка» — это открытый российский мессенджер с прозрачной архитектурой и соответствием compliance, основанный на форке популярного сервера Tinode. Backend поддерживает личные и групповые чаты до 200 тысяч участников, каналы, индикаторы набора текста и подтверждения доставки сообщений. Интерфейсы реализованы как Web-приложение на React с темной темой и адаптивным дизайном, так и Android-клиент с использованием Kotlin и Jetpack Compose.
Выбор форка Tinode обусловлен его зрелостью и богатым функционалом, позволяющим сэкономить месяцы разработки. Однако для Web UI и Android было принято решение написать собственные клиенты, чтобы добиться максимального контроля и удобства использования. Протокол обмена — WebSocket с JSON, что обеспечивает гибкость и предсказуемость работы.
Важной частью архитектуры является отдельный compliance-сервис, реализованный на Go, который отвечает за хранение данных пользователей в соответствии с требованиями российского законодательства: хранение данных три года, аудит доступа и взаимодействие с государственными органами. Такой похо позволяет избежать лицензирования по GPL для compliance и обеспечивает юридическую надежность.
Проект открыт для участников: код скоро появится на GitHub под лицензией GPL v3 для серверной части. Авторы приглашают всех желающих присоединиться к развитию «Ласточки» и получить опыт работы с реальным production-проектом.
Среди технических вызовов были отмечены: увеличение размера изображений из-за Base64-кодирования, неочевидная обработка истечения сессий и тонкости соблюдения compliance под лицензией GPL. В инфраструктуре используется Docker Compose для основных сервисов и системный Nginx для стабильного проксирования WebSocket-соединений.
«Ласточка» не претендует на замену популярных мессенджеров, а предлагает открытую, прозрачную альтернативу с акцентом на соответствие российским правовым нормам и удобство пользователей.
Контакт для связи в Telegram: @Anton_Budylin.