Présentation de syq

Syq est un utilitaire en ligne de commande dédié aux opérations de copie, de réorganisation et de suppression de fichiers, que ce soit localement ou entre plusieurs hôtes. Le projet se distingue par sa capacité à reprendre les transferts interrompus et à exécuter des commandes à distance depuis le shell d’un serveur, sans nécessiter de serveur SSH ni de port entrant sur la machine cliente. Cette architecture repose sur une API JSON et un SDK Python, ce qui permet d’intégrer syq dans des scripts automatisés ou des pipelines CI/CD.

Mécanisme et protocole

Contrairement à rsync, qui utilise un algorithme de delta basé sur des sommes de contrôle roulantes, syq emploie son propre protocole propriétaire. Le protocole ne prend pas en charge les filtres rsync, les liens durs, les listes de contrôle d’accès (ACL), les attributs étendus (xattr), les fichiers creux ni les deltas de checksum. Cette simplification réduit la surcharge de négociation et accélère le débit, au prix d’une compatibilité réduite avec les scénarios rsync avancés. La syntaxe de base s’appuie sur des sous‑commandes explicites :

syq cp project --to server --into backup
crée ou met à jour le répertoire backup/project dans le répertoire personnel de l’utilisateur sur server. L’option --srcs-in permet de copier le contenu d’un répertoire source directement dans la destination, comme illustré par
syq cp --srcs-in project --to server --into backup
.

Comparaison avec rsync et limites

Syq accepte les options classiques de rsync (-av) via la sous‑commande rsync, mais le traitement repose toujours sur son protocole interne. L’absence de prise en charge des filtres rsync signifie que les règles de sélection de fichiers complexes doivent être reproduites manuellement ou via le JSON API. De plus, l’absence de gestion des liens durs et des attributs étendus peut entraîner une perte d’information lors de la migration de systèmes Unix où ces métadonnées sont critiques. Les utilisateurs doivent donc valider la compatibilité de leurs scripts existants avant de remplacer rsync par syq.

Scénarios d’utilisation et perspectives

Le modèle sans serveur SSH sur la machine cliente rend syq adapté aux environnements où les pare‑feux bloquent les connexions entrantes, comme les laptops en déplacement ou les machines de CI isolées. La capacité de reprendre les transferts interrompus améliore la fiabilité sur des liaisons instables, notamment lors de la synchronisation de gros jeux de données entre un poste de travail et un serveur distant. Cependant, l’absence de prise en charge des fonctionnalités avancées de rsync limite l’adoption dans les workflows qui s’appuient sur les ACL ou les fichiers creux. Une évolution future du protocole pourrait intégrer ces extensions tout en conservant la légèreté qui caractérise l’outil.