Syncthing je nástroj pro peer-to-peer synchronizaci souborů. Je navržen tak, aby přenášel a sjednocoval data mezi zařízeními v rámci lokální sítě i mezi vzdálenými body přes Internet. Aplikace je dostupná pro systémy Windows, macOS, Linux, Android, iOS, *BSD a illumos. Software je free a open-source (s otevřeným zdrojovým kódem) a jeho verze 1.0 byla vydána v roce 2019 po pěti letech beta testování.

Server Syncthing běží na pozadí jako démon a poskytuje uživateli grafické uživatelské rozhraní pro konfiguraci sdílených složek a zařízení. K rozhraní se přistupuje prostřednictvím webového prohlížeče na adrese localhost http://127.0.0.1:8384.

Technologie Syncthing je napsán v jazyce Go a implementuje svůj vlastní, rovněž svobodný protokol Block Exchange Protocol.

Syncthing využívá model „vlastního cloudu“ (BYO cloud) a běží na hardwaru poskytnutém uživatelem. Podporuje protokol IPv6 a v sítích IPv4 využívá techniky NAT punching a přenosové uzly (relays). Připojení nového zařízení vyžaduje výslovné schválení (pokud není použita funkce „Introducer“), což zvyšuje bezpečnost mesh sítě. Veškerá data, ať už jsou přenášena přímo mezi zařízeními, nebo přes přenosové uzly, jsou šifrována pomocí protokolu TLS.

Konflikty jsou řešeny přejmenováním staršího souboru s příponou „sync-conflict“ (společně s časovým razítkem), což uživateli umožňuje rozhodnout, jak naložit se dvěma nebo více soubory stejného názvu, které byly změněny mezi synchronizacemi. Nadstavby GUI mohou tyto soubory využít k tomu, aby uživateli nabídly metodu řešení konfliktů bez nutnosti manuální manipulace se soubory. Efektivní synchronizace je dosaženo kompresí metadat a všech přenášených dat, opětovným využitím bloků dat a odlehčeným skenováním změn souborů poté, co byl vypočítán a uložen úplný haš.

Syncthing nabízí typy adresářů „pouze odeslat“ a „pouze přijmout“, u kterých nejsou zpracovávány aktualizace ze vzdálených zařízení, dále různé typy verzování souborů (koš, jednoduché nebo odstupňované verzování a předání verzování externímu programu či skriptu) a vzory pro ignorování souborů a cest. V současnosti jsou podporovány dvě různé implementace hašování SHA-256, přičemž ta rychlejší je dynamicky vybrána po krátkém testu výkonu (benchmarku) při spuštění. Přesouvání a přejmenovávání souborů a adresářů je zpracováváno efektivně bez nutnosti znovu stahovat existující data.

Reference

Kategorie:Synchronizace Kategorie:Peer-to-peer sítě Kategorie:Zálohovací software Kategorie:Software pro Linux Kategorie:Software pro Windows Kategorie:Software pro macOS Kategorie:Software pod licencí MPL