Hacker News Digest

15 октября 2025 г. в 22:28 • whynothugo.nl • ⭐ 86 • 💬 10

OriginalHN

#imap#inotify#kqueue#condstore#qresync#notify#database#task-queue

ImapGoose

ImapGoose — это инструмент для синхронизации почты, работающий в режиме реального времени. В отличие от традиционных решений, которые выполняют синхронизацию периодически, ImapGoose работает как демон, отслеживая изменения как на сервере (через IMAP), так и в локальной файловой системе (через inotify/kqueue). Это позволяет моментально отражать изменения: новое письмо на сервере появляется в файловой системе в течение секунды, а удалённое в другом клиенте — исчезает локально.

Ключевые особенности включают поддержку современных расширений IMAP, таких как CONDSTORE (2006) для эффективного определения изменений, QRESYNC (2008) для работы с удалениями и NOTIFY (2009) для мгновенных уведомлений об изменениях. Это позволяет ImapGoose минимизировать трафик и избегать массовой пересинхронизации.

ImapGoose использует локальную базу данных для отслеживания состояния, что позволяет ему интеллектуально обрабатывать изменения. Например, при обнаружении расхождений программа не перезагружает весь mailbox, а вычисляет разницу и синхронизирует только необходимые части. Это особенно эффективно в сочетании с NOTIFY, который немедленно сообщает об изменениях, сводя к минимуму необходимость опросов.

Программа устойчива к сетевым проблемам: использует экспоненциальный бэксаптинг при отключениях (от 1 секунды до 17 минут), и автоматически возобновляет синхронизацию при восстановлении соединения. Внутренняя архитектура использует систему задач и очередей для координации синхронизации, предотвращая конфликты даже при параллельных изменениях.<|begin▁of▁sentence|>