Несколько недель назад была пуликована идея создания «честного российского мессенджера» с открытым исходным кодом и прозрачным compliance. Сейчас проект «Ласточка» уже работает: полностью переписанный web-клиент и Android-приложение запущены в продакшене, сервер обслуживает реальные подключения, а iOS в разработке.
В основе сервера — форк Tinode, популярного open source решения с богатым функционалом: личные и групповые чаты, каналы, индикаторы набора текста, подтверждения доставки и прочтения сообщений. Эта платформа позволила существенно сократить время разработки и обеспечить гибкую кастомизацию.
Web-интерфейс создан с нуля на React 18, TypeScript и Tailwind CSS, что дало современный дизайн с поддержкой темной темы и отзывчивым UX. Android-приложение написано на Kotlin с использованием Jetpack Compose и собственной реализацией WebSocket-клиента для полного контроля над соединением и ошибками.
Коммуникация происходит через WebSocket с JSON-сообщениями, что обеспечивает быструю и надежную передачу данных. В системе реаизованы разные типы чатов с продуманной моделью прав доступа.
В процессе разработки выявились сложности, например, увеличение трафика из-за base64-кодирования изображений и необходимость улучшить обработку истечения сессий. Также пришлось выделить compliance-сервис в отдельный бинарник на Go для соблюдения требований GPL v3 и юридических норм.
Особое внимание уделено требованиям российского законодательства: проект учитывает статус Организатора распространения информации (ОРИ), хранение данных три года, обязательную идентификацию пользователей по телефону и блокировку противоправного контента. Compliance-сервис реализует аудит и двухфакторную аутентификацию для регуляторов.
«Ласточка» — это открытый проект под лицензией GPL v3 (серверная часть), желающие могут присоединиться к разработке и внести свой вклад. В ближайшее время код станет доступен на GitHub.
Связаться с автором можно в Telegram: @Anton_Budylin.