Macaroni: мессенджер в одном HTML-файле
Появился необычный мессенджер Macaroni, который работает прямо в браузере и использует Git-репозитории для хранения сообщений. Никаких серверов, баз данных и регистрации – только HTML, JSON и Git.
Мессенджер, который живёт в Git
Macaroni Messenger – мессенджер, реализованный в виде единственного HTML‑файла. Он использует Git‑репозитории для хранения всей информации, избавляя от необходимости в сервере и базе данных. Проект позиционируется как альтернатива сложным современным системам обмена сообщениями.
Как это работает
Macaroni хранит сообщения в специальной директории .macaroni/ внутри Git‑репозитория. Структура файлов проста и понятна: метаданные чатов, списки участников, сами сообщения, организованные по датам. Фактически, это набор JSON‑файлов, которые отслеживаются системой контроля версий.
Почему Git?
Разработчики объясняют свой выбор просто: Git уже умеет хранить файлы, а это как раз то, что нужно для обмена сообщениями. Такой подход позволяет использовать все преимущества Git – контроль версий, историю изменений, возможность репликации и децентрализации.
Что изменится для разработчиков
Macaroni предоставляет протокол .macaroni/, который может быть адаптирован для работы с различными Git‑хостингами. На данный момент встроенная поддержка есть только для GitHub, но в перспективе планируется добавить GitLab, GitVerse и другие. Для их интеграции потребуется разработать адаптер, совместимый с API хостинга.
Ограничения и особенности
Macaroni не обеспечивает приватность сообщений. Публичный репозиторий означает публичные сообщения, а доступ к приватному репозиторию даёт право читать все сообщения всем, у кого есть к нему доступ. Кроме того, проект полагается на GitHub API, что может привести к ограничениям по частоте запросов.
Что это значит для бизнеса
Macaroni демонстрирует, что даже сложные задачи можно решить с помощью простых инструментов. Использование Git для хранения данных может быть интересным решением для проектов, где важна децентрализация, контроль версий и прозрачность. Это может быть полезно, например, для внутренних коммуникаций в небольших командах или для хранения логов и аудита.