Syncthing é um aplicativo gratuito, de código aberto e plataforma cruzada que permite a organização da sincronização automática de arquivos do usuário em vários dispositivos, resolvendo problemas semelhantes ao sistema BitTorrent Sync proprietário.
Os dados sincronizados não são enviados para armazenamentos em nuvem, mas sime replicar diretamente entre os sistemas do usuário quando eles aparecem simultaneamente online utilizando o protocolo BEP (Block Exchange Protocol) desenvolvido pelo projeto.
O código de sincronização é escrito na linguagem Go e é distribuído sob a licença gratuita da MPL. As compilações pré-construídas estão prontas para Linux, Android, Windows, macOS, FreeBSD, Dragonfly BSD, NetBSD, OpenBSD e Solaris.
Além de solucionar problemas de sincronização de dados entre vários dispositivos de um usuário, com o Syncthing é possível criar grandes redes descentralizadas para armazenar dados compartilhados que são distribuídos entre os sistemas dos participantes.
Sobre Sincronizar
Syncthing fornece ao usuário controles de acesso flexíveis e exceções de sincronização.
É possível definir hosts que receberão apenas dados, ou seja, alterações de dados nesses hosts não afetarão as instâncias de dados armazenadas em outros sistemas. Vários modos de controle de versão de arquivo são suportados, o que preserva as versões anteriores dos dados alterados.
Durante a sincronização, o arquivo é logicamente dividido em blocos, que são uma parte indivisível ao transferir dados entre os sistemas do usuário.
Ao sincronizar com um novo dispositivo, se houver blocos idênticos em vários dispositivos, os blocos são copiados de nós diferentes, por analogia com o funcionamento do sistema BitTorrent.
Quanto mais dispositivos participarem da sincronização, mais rápida será a replicação de novos dados devido à paralelização.
No processo de sincronização de arquivos modificados, apenas os blocos de dados modificados são transferidos pela rede, e quando o nome é alterado ou os direitos de acesso são alterados, apenas os metadados são sincronizados.
Canais de dados são formados usando TLS, todos os nós autenticam uns aos outros usando certificados e identificadores de dispositivo, SHA-256 é usado para verificação de integridade.
Para determinar os nós de sincronização na rede local, pode-se usar o protocolo UPnP, que não requer a entrada manual dos endereços IP dos dispositivos que estão sincronizando.
Para configuração e monitoramento do sistema, uma interface da web integrada, cliente CLI e GUI Syncthing-GTK são fornecidos, o que também fornece ferramentas de gerenciamento para nós de sincronização e repositórios.
Para simplificar a busca por nós Syncthing, um servidor de coordenação de descoberta de nós está sendo desenvolvido, para o qual uma imagem Docker pronta foi preparada.
Sobre a versão estável do Syncthing
Após cinco anos desde a formação da primeira versão de teste, a primeira versão estável do sistema Syncthing 1.0.0 foi preparada.
O lançamento marcou a prontidão do projeto para uso generalizado e estabilização dos protocolos, que não serão alterados no ramo 1.xx, que viola a compatibilidade com versões anteriores.
O projeto também mudou para um novo esquema de numeração para lançamentos, que corresponde ao princípio de controle semântico de versão (xyz, onde "x" muda quando a compatibilidade com versões anteriores é violada, "y" indica mudanças funcionais significativas e "z" - atualizações corretivas).
Das mudanças funcionais adicionadas desde a última versão experimental, existe a possibilidade de limitar o número máximo de operações simultâneas de varredura de dados, mostrando o limite da taxa de transferência de dados configurado na GUI e a capacidade de visualizar arquivos modificados localmente para diretórios sincronizados no modo somente dados.
Como instalar o Syncthing 1.0.0?
Para aqueles que estão interessados em poder instalar este aplicativo em seu sistema, eles devem abrir um terminal e nele digitar o seguinte comando
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -
Feito isso agora, vamos adicionar o repositório estável do aplicativo ao nosso sistema com:
echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list
Finalmente, podemos instalá-lo com:
sudo apt-get update sudo apt-get install syncthing