Syncthing — свободное программное обеспечение для синхронизации файлов между устройствами по одноранговой (peer-to-peer) сети. Программа предназначена для непрерывной передачи изменений в реальном времени без использования централизованного облачного сервера; каждое подключённое устройство хранит свою копию синхронизируемых папок и обменивается данными напрямую с другими участниками сети. Проект развивается как открытый и кроссплатформенный, поддерживает различные операционные системы и использует модель распределённого хранения с учётом контроля доступа между узлами.
Архитектура Syncthing ориентирована на безопасность и целостность данных: трафик между узлами шифруется, а идентификация и установление доверия между устройствами осуществляется на основе ключей. Программа реализует механизмы обнаружения изменений в файловой системе, оптимизированную передачу блока данных и разрешение конфликтов версий при одновременных правках. Интерфейс управления обычно представлен локальной веб-консолью или интеграциями с системными средствами, что позволяет настраивать подключённые узлы, папки и права доступа.
- Модель синхронизации: одноранговая (P2P) синхронизация без обязательного центрального сервера; каждое устройство является равноправным участником.
- Шифрование при передаче: шифрование каналов между узлами для защиты данных в сети и предотвращения перехвата содержимого.
- Аутентификация узлов: взаимная идентификация устройств с использованием уникальных идентификаторов/ключей для установления доверия.
- Непрерывная синхронизация: отслеживание изменений в реальном времени и мгновенная репликация изменений на подключённые устройства.
- Управление версиями и конфликтами: механизмы детектирования конфликтов при одновременных изменениях и сохранения предыдущих версий файлов для восстановления.
- Делимитация доступа: гибкая конфигурация папок и прав доступа — возможность выбирать, какие папки синхронизировать с какими устройствами.
- Оптимизация передачи: передача только изменённых блоков файлов, использование компрессии и дедупликации для уменьшения сетевого трафика.
- Кроссплатформенность: поддержка множества операционных систем и архитектур, что позволяет синхронизировать данные между разными типами устройств.
- Локальная веб-консоль: интерфейс управления и мониторинга, доступный локально через браузер для настройки и просмотра статуса синхронизации.
- Работа в локальных и распределённых сетях: возможность функционировать в локальной сети без доступа в интернет, а также через интернет с использованием различных методов обнаружения пиров.