ΠΠΎΡΡΡΠΏΠ΅Π½ Π΅ ΡΠ΅Π»ΠΈΠ·ΡΡ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° syncspirit 0.4.5, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π° Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ΡΠ°Π²Π° Π·Π°Π΄Π°ΡΠΈ, ΡΡ ΠΎΠ΄Π½ΠΈ Ρ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Resilio Sync (Π±ΠΈΠ²Ρ BitTorrent Sync). Syncspirit Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C++ ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ GPLv3. ΠΡΠ°ΡΠΈΡΠ½ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° FLTK; Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅ΡΡΠ½Π° Π²Π³ΡΠ°Π΄Π΅Π½Π° Π‘Π£ΠΠ libmdbx; Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΡΠ±ΠΈΡΠΈΡ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π°ΠΊΡΠΎΡΠ΅Π½ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ rotor. ΠΠΎΡΠΎΠ²ΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ° Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Linux (x86_64, AppImage), Windows (ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Windows XP) ΠΈ macOS.
Syncspirit ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» BEP, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Syncthing. Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π΅ ΡΠ΅ ΠΊΠ°ΡΠ²Π°Ρ Π² Π²ΡΠ½ΡΠ½ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΏΡΠΈ ΡΡΡ Π½ΠΎΡΠΎ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½o ΠΏΡΠΈΡΡΡΡΠ²ΠΈΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½. Syncspirit Π±Π΅Π·ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ° Ρ Syncthing-ΡΠ·Π»ΠΈ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π½ΠΎ Π½ΠΈΠ²ΠΎ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Syncthing Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΡΠ°ΡΡΠ½ΠΈΡΠΈΡΠ΅ Π² ΠΌΡΠ΅ΠΆΠ°ΡΠ° (ΡΠ°Π·ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π°).
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Syncthing, ΠΊΠΎΠΉΡΠΎ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Go ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΡΡΠ²ΡΡΠ½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ REST-API (ΠΊΠ°ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ΅Π± Π±ΡΠ°ΡΠ·ΡΡ), syncspirit ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΊΠ°ΠΊΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠΎΠ½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ syncspirit-daemon, ΡΠ°ΠΊΠ° ΠΈ ΠΎΡΠ΄Π΅Π»Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π³ΡΠ°ΡΠΈΡΠ΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΎ ΠΏΠΎ-Π΅ΠΊΠΎΠ½ΠΎΠΌΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ.

ΠΠ»ΡΡΠΎΠ²ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ Π°Π½ΠΎΠ½Ρ Π½Π° Π²Π΅ΡΡΠΈΡ 0.4.1:
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅Π½ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΡΡΡ Π½Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄Π²Π°ΡΠ° ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Ρ ΠΊΠ»ΡΡΡΠ΅ΡΠ° (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠ΅ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ inotify, ReadDirectoryChangesW ΠΈ kqueue).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½Π° Π²Π»ΠΎΠΆΠ΅Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ.
- ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΎΡΡ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ ΠΈΠΌΠ΅Π½Π°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΡ Π² UTF8.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ΅Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ.
- ΠΠ°ΠΌΠ°Π»Π΅Π½ Π΅ ΡΠ°Π·Ρ ΠΎΠ΄ΡΡ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ (ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ Ρ 30-40%) ΠΈ Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° CPU.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΡΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΡΠ΅Π½ΠΎΠ²ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ (Π°ΠΊΡΡΠ°Π»Π½ΠΎ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ ΠΈΠ·ΡΠ΅ΠΊΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΈ).
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Ρ Syncthing 2.0.
- ΠΠ·Π²ΡΡΡΠ΅Π½ Π΅ ΠΏΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΈ ΡΠ±ΠΎΡΠΊΠΈ (CI/CD) SourceCraft.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
