The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск P2P-системы синхронизации файлов syncspirit 0.4.1, совместимой с Syncthing

05.08.2025 19:36

Доступен релиз программы syncspirit 0.4.1, позволяющей организовать автоматическую непрерывную синхронизацию файлов пользователя на нескольких устройствах. Проект решает задачи, сходные с проприетарной системой Resilio Sync (бывший BitTorrent Sync). Syncspirit написан на языке C++ и распространяется под лицензией GPLv3. Графический интерфейс построен с использованием библиотеки FLTK; для хранения БД используется отечественная встраиваемая СУБД libmdbx; для обработки событий применяется акторный фреймворк rotor. Готовые сборки доступны для Linux (x86_64, AppImage), Windows (поддерживается Windows XP) и macOS.

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

В отличие от проекта Syncthing, который написан на языке Go и использует клиент-серверную архитектуру и REST-API (в качестве клиента выступает веб-браузер), syncspirit предоставляет как реализацию в виде фонового процесса syncspirit-daemon, так и отдельное приложение с графическим интерфейсом, позволяющее более экономно расходовать оперативную память.

Новшества в версии 0.4.1:

  • Унифицированная модель разделяемых папок, позволяющих получить детальную информацию о любом файле, включая удалённые, из папки как на локальном, так и на сопряжённом устройстве.
  • Возможность импорта содержимого папки. Актуально для случаев, когда файлы уже имеются локально и хотелось бы избежать сетевой синхронизации.
  • Повышена производительность синхронизации большого количества маленьких файлов.
  • Улучшена совместимость с протоколом BEP:
    • Возможность задавать тип синхронизации папки (folder_type): только получение изменений, только отправки и двунаправленная синхронизация.
    • Поддержка опции "disable_temp_indixes" для отключения информирования сопряжённых устройств о процессе скачивания больших файлов.
    • Поддержка синхронизации прав доступа к файлам (permissions) и возможность их игнорирования (ignore_permissions).
    • Возможность задания флага "ignore_deletes" для предотвращения локального удаления разделяемых файлов, если они были удалены на сопряжённом устройстве.
    • Возможность задания флага "auto-accept" для автоматической синхронизации ранее неизвестных файлов для доверенных устройств.
    • Возможность задания флага "introducer" для автоматического сопряжения с устройствами, которые известны ранее сопряжённому устройству.
    • Возможность сжатия исходящего трафика (данных и метаданных) с помощью алгоритма LZ4.
  • Возможность сортировки файлов перед синхронизацией: в алфавитном порядке, по размеру или по дате модификации.
  • Исправлены найденные ошибки.


  1. Главная ссылка к новости (https://github.com/basiliscos/...)
  2. OpenNews: Выпуск P2P-системы синхронизации файлов syncspirit 0.4.0, совместимой с Syncthing
  3. OpenNews: Выпуск открытой P2P-системы синхронизации файлов Syncthing 1.16
  4. OpenNews: Выпуск утилиты для синхронизации файлов Rsync 3.3.0. Эндрю Триджелл возвращается в проект
  5. OpenNews: Началось публичное тестирование технологии синхронизации компьютеров BitTorrent Sync
  6. OpenNews: Основатель QEMU и FFmpeg развивает систему синхронизации файлов VFsync
Автор новости: basiliscos
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63682-syncspirit
Ключевые слова: syncspirit, syncthing
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (20) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 19:45, 05/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Классный GUI, без шуток
     
     
  • 2.2, Аноним (2), 20:03, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Отвратительный гуй. Красная кнопка не проходит WCAG AAA, разные элементы гуя имеют разный размер шрифта, значки невнятного значения -- придется читать тултипы, чтоб расшифровать аффтарские ребусы. В общем, отвратный гуй, за такое можно сразу увольнять. А еще аффтар путает Mb с MiB, то есть функционально гуй еще и врет.
     
     
  • 3.3, Знатный аноним (?), 20:06, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И в довесок всё поделие пытается паразитировать на инфраструктуре другого проекта (коннект клиентов за NAT)
     
     
  • 4.22, Аноним (-), 22:07, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > И в довесок всё поделие пытается паразитировать на инфраструктуре другого проекта
    > (коннект клиентов за NAT)

    Я тоже не понимаю зачем они взяли уродский протокол веб девов с их жысонами и чем там еще.

    И в целом странные люди. База какая-то экзотическая, в пакетах дистро ее нет, да еще - патчить надо потом самому, в репа патч лежит. Фреймворк какой-то самопальный надо. В общем канительный проект если вы не его автор (себе мы многое прощаем).

     
  • 3.13, Аноним (13), 20:47, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сразу видно отечественного производителя.
     
  • 2.21, Stanislavvv (?), 21:50, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Так себе гуй... Подобное, но чуть менее аляповатое видел только в отечественной управлялке одним зеленым NGFW. Но даже там не додумались красить кнопки, обошлись иконками.
    А вообще, похоже, у автора NIH-синдром...
     

  • 1.5, Аноним (5), 20:13, 05/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Сразу видно поделку от отечественных дельфистов. Ну почему fltk?! Ну хоть tui сделай, он кстати тут будет на порядок лучше смотреться. Вдобавок libmdbx, не дай Бог.
     
     
  • 2.6, Аноним (5), 20:16, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > поддерживается Windows XP

    Самое главное забыл. Автор крадёт свои же ресурсы у всех для кого выложил это приложение в пользу несуществующих пользователей несуществующей оси, а я-то знаю каких трудов стоит поддержка этой древности.

     
     
  • 3.9, Аноним (9), 20:25, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это нездоровая тема, я бы поостерёгся иметь дело с подобными авторами. С одной стороны, черт бы с ней, с этой икспи, особенно, если сабж -- "вещь в себе", но это, как минимум, зависимость от древних тулчейнов, и много ничем не мотивированной боли.
     
     
  • 4.11, Аноним (11), 20:30, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > но это, как минимум, зависимость от древних тулчейнов

    древних?
    FLTK 1.4.4 released on July 20, 2025

    > много ничем не мотивированной боли

    да, у многих комментаторов, почему-то много ничем не мотивированной боли, со стороны спины

     
     
  • 5.12, Аноним (9), 20:34, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ты не отличаешь тулчейн от тулкита? Ну и флтк это такое, оно примерно 25 лет не обновлялось (вроде автор плюсов очень топил в своих книжках, на том и выезжало).
     
  • 4.16, Аноним (11), 21:09, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты не отличаешь тулчейн от тулкита?

    подумал что аноним дурачок, а вышло что я

    а что не так с тулчейнами C++ для win32 сборки совместимой с windows xp?
    автор вроде как шлангом собирает, ну не 6-ю студию для этих целей использовать же

     
  • 4.19, Аноним (19), 21:21, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > многие из современных приложений будут работать на версии ядра Linux 2.6, их авторы у кого и что крадут?

    А ты думаешь нет? Когда ты приходишь контрибутить в проект, пишешь код, тесты, все проверяешь, засылаешь пр, а CI такой - пук, а у нас тут cmake 2, не знаю никаких generator expressions. Думаешь как закостылить, штудируешь полдня древнюю доку на цмейк, пытаешься на стековерфлоу темы по датам отфильтровать, чатьжопете пытаешься объяснить что у тебя древний цмаке. Уже потрачено больше чем на написание кода, но сборка запустилась. CI такой - пук, а у нас тут C++98, не знаю никаких unordered_map.

    Автор: используй map, это компаааатибле.
    Я: а ничего что..?
    Автор: ничего, писай прямо здесь
    Я: ну ок
    CI: молодца!
    Автор: молодца!
    Мой прод которому нужна эта фича: еле ворочается.
    Я: Fuuuu.

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

    Такая вот история. Интересно, есть ли тут те кто назовет проект.

     
  • 3.10, Аноним (11), 20:25, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    многие из современных приложений будут работать на версии ядра Linux 2.6, их авторы у кого и что крадут?
     

  • 1.15, Мистер Крабс (?), 20:55, 05/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    IMHO: интерфейс на голову выше… нет, неизмеримо выше, чем GTK/Libadwaita. Как можно было вообще вляпаться в такое гнусное скругленное безумие?
     
  • 1.20, Аноним (5), 21:41, 05/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Из кода ротора:

    > /** \brief non-owning pointer to resources plugin */
    > plugin::resources_plugin_t *resources = nullptr;
    >
    > /** \brief finds plugin by plugin class identity
    >  *
    >  * 'nullptr' is returned when plugin cannot be found
    >  */
    > plugin::plugin_base_t *get_plugin(const std::type_index &) const noexcept;

    Так просто зашёл напомнить что в расте свойства объектов описываются типами, а не комментариями.

     
     
  • 2.24, Аноним (-), 22:44, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну что ж, придётся в следующей версии GCC добавить искусственный интеллект для разбора C++ комментариев и проверки кода на правильное использование API. По другому раст не победить.
     
  • 2.25, Аноним (19), 23:07, 05/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну optional и в плюсах есть. Просто толстолобые диды считают 'optional<const T&>' крамолой. Правда нишевой оптимизации нет, а диды привыкли еще с сишных времён над бийтиками трястись. Хорошо что они не знают что в rust поля структур с дефолтным repr сами сортируются по размеру чтобы на выравнивание байты не тратить, а то с зависти бы порвались все.
     

  • 1.23, Stanislavvv (?), 22:18, 05/08/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сходил на гитхаб проекта, почитал ридми.
    Либо автор много чего о себе думает, либо стебётся, ибо заявленная ностальгия об "good old programs, where everything is "in memory" of one program" как-то слабо сочетается с разделением гуя и демона.

    Планов у него на гуи, конечно, громадьё ("plans to develop multiple syncspirit UIs: wx-widgets, qt, gtk, maybe native, maybe even native mobile UIs..."), но то, что синхронизироваться можно с компом вообще без гуя — про это он не в курсе, судя по всему. То есть домашний NAS без монитора, но с вебмордой — в пролёте, даже если захочется.

    Что касается потребления памяти на более-менее современном (15+ лет) десктопе — с учётом того, что там в любом случае нужен браузер, syncthing, работающий рядом, просто теряется где-то вдалеке, если отсортировать по потреблению памяти, причём независимо от ОС. Не там надо оптимизировать потребление... Несовременный же десктоп с осью тех же времен сейчас имеет смысл только как очень специализированный АРМ, работающий по принципу "работает — не трогай" со времён, когда не то что syncthing не существовал, ещё и samba4 не вышла.

    Вобщем, идея написать совместимое понятна, но цели написания — странноваты. Впрочем, остаётся вариант обучения то ли C++, то ли fltk, то ли работе с библиотеками.

     
     
  • 2.26, Аноним (-), 00:33, 06/08/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Цели да, странны. Я думаю, что чуваку просто по фану писать именно так, но в силу каких-то психологических проблем он не может признаться себе, что выбирает такие странные пути чисто по фану. Как следствие, он начинает придумывать объяснения, и (как обычно в таких случаях с людьми и бывает) делает это не особо критично.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру