Релиз Syncthing 2.0 - бесплатный аналог Yandex.Диск

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

Прежде всего, разработчики предупреждают, что пользователям следует ожидать некоторой нестабильности. Тем не менее, обновление содержит значительный набор улучшений, чисток и изменений, которые закладывают основу для будущего.

Одним из самых значительных изменений является переход от бэкенда базы данных LevelDB к SQLite. Это изменение должно упростить обслуживание базы данных и уменьшить количество ошибок, хотя процесс миграции во время первого запуска может занять некоторое время для пользователей с большими сетями.

Наряду с этим была модернизирована журнализация: появились структурированные записи, контроль уровня журнала для каждого пакета и новый уровень WARNING между INFO и ERROR. Интерфейс командной строки также был оптимизирован: старые длинные опции с одинарным тире удалены, некоторые опции переименованы, а другие реорганизованы в подкоманды.

Что касается уборки, то Syncthing больше не будет хранить удаленные элементы в базе данных вечно – по умолчанию они забываются через шесть месяцев, хотя это можно настроить или отключить.

Производительность также повысилась, поскольку отменено обнаружение сдвинутых хэшей, что ускоряет сканирование и синхронизацию. Исчезла папка по умолчанию, а между устройствами v2 теперь стандартно устанавливается несколько соединений, что ускоряет передачу метаданных и файлов.

Однако не все новости хороши для всех платформ. Из-за проблем с кросс-компиляцией SQLite, предварительно собранные двоичные файлы больше не предоставляются для некоторых систем, включая DragonFly BSD, Illumos, Solaris, Linux PPC64, NetBSD, а также некоторые варианты OpenBSD и Windows ARM.

Под капотом находится длинный список исправлений и улучшений. Среди них – улучшенная обработка разрешения конфликтов удаленных файлов (теперь удаление может быть выигрышным), использование ключей Ed25519 для синхронизации соединений, возможность ограничения пропускной способности локальной сети и поддержка сопоставления UDP-портов с QUIC. Многие улучшения также направлены на повышение эффективности использования памяти, очистку кода и оптимизацию процесса сборки.

Полный список всех изменений в Syncthing 2.0 приведен в журнале изменений.