Greboca  

Suport technique et veille technologique

Aujourd’hui, les grandes entreprises et administrations publiques hésitent entre continuer à utiliser des logiciels propriétaires ou basculer vers les Logiciels Libres. Pourtant, la plupart des logiciels libres sont capables de bien traiter les données issues des logiciels propriétaire, et parfois avec une meilleur compatibilité.

C’est alors la barrière de la prise en main qui fait peur, et pourtant...

Les logiciels libres

L’aspect « Logiciel Libre » permet une évolution rapide et une plus grande participation des utilisateurs. Les aides et tutoriels foisonnent sur Internet ou sont directement inclus dans le logiciel lui-même.

Enfin, les concepteurs sont plus proches des utilisateurs, ce qui rend les logiciels libres plus agréable à utiliser et conviviaux.

Grâce à la disponibilité des logiciels libres, vous trouverez facilement des services de support techniques et la licence n’est plus un frein à l’utilisation de ces logiciels par votre personnel.

Notre support technique concerne essentiellement les logiciels libres, que ce soit sous forme de services ponctuels ou de tutoriels.

DLFP - Dépêches  -  Rakoshare, un outil de synchronisation de dossiers pour tout le monde

 -  Juin 2014 - 

Rakoshare est un logiciel, en Go, sous licence MIT, de synchronisation de dossiers entre plusieurs machines. Il se veut simple d'installation et d'utilisation par le plus grand nombre. Fonctionnellement, il est très largement basé sur Bittorrent Sync, un logiciel équivalent mais non-libre.

Sommaire

Rakoshare est un projet sur lequel je travaille depuis l'annonce de Bittorrent Sync, et après avoir vu que depuis tout ce temps il n'y a même pas une annonce de l'ouverture de son code source.

Le but de cette application est de rester extrêmement simple, tant à l'installation qu'à l'utilisation, parce que ce sont là des critères essentiels à l'adoption d'un logiciel. L'une des conséquences est ainsi qu'il n'y a pas besoin d'installer un serveur central; n'importe quelle machine compatible peut se joindre au partage.

Installation

Le binaire en question est prévu, mais pour le moment il vous faudra le compiler par vous-même. Les instructions sont sur la page du projet, il s'agit tout simplement d'une application Go standard.

Utilisation

L'utilisation se résume à choisir un dossier que l'on souhaite partager, créer un id aléatoire (pour être sûr qu'il ne soit pas déjà choisi), et lancer l'application en liant les deux:

    $ rakoshare -fileDir ~/myDir -id  -useLPD=true -useDHT=true

La même commande pourra être lancée sur chaque ordinateur qui doit recevoir une copie du dossier. Notez que l'emplacement du dossier ne doit pas nécessairement être le même sur toutes les machines.

Les dessous

Comme les plus attentifs auront pu le remarquer, Rakoshare ré-utilise le protocole bittorrent qui se trouve être un excellent protocole de transport de données. Rakoshare est principalement une glue par dessus celui-ci pour permettre un plus grand dynamisme, notamment sur la manière d'informer les pairs d'un changement dans le dossier et propager ce changement. L’intérêt principal est que l'identifiant est la seule information qui a besoin d'être partagée avec les autres participants: une suite de 40 caractères est suffisante pour mettre d'accord un nombre potentiellement infini de machines

Rakoshare s'inspire également de Couchdb, qui a des idées réellement intéressantes pour la gestion des versions que je réutiliserai. D'autres technologies, comme du multiplexing de connexions, du chiffrement et une gestion des autorisations sont prévues pour les versions à venir.

Rakoshare n'est pas parti de zéro, je suis parti de Taipei-Torrent, un client bittorrent écrit en Go. Le choix de ce langage ne s'est d'ailleurs pas totalement fait au hasard : bien sûr, j'ai commencé à m'y intéresser quand on a commencé à parler de lui, et mes premières impressions ont été celles que tout le monde a à peu près eues: une sémantique extrêmement simple (si vous savez déjà programmer, vous n'apprendrez rien de spécialement neuf) mais suffisamment puissantes pour construire des applications performantes et fiables très rapidement. En plus de ça, les binaires créés sont all-inclusive, c'est à dire qu'ils contiennent absolument tout ce qui est nécessaire; il n'y a plus de problèmes de déploiements. Enfin, la gestion de la concurrence en fait un langage tout à fait adapté pour tout logiciel qui reçoit des informations de l'extérieur à des moments indéfinis, comme par exemple un serveur.

Limitations

Rakoshare en est à sa version Make It Work: ça marche pour un dossier seulement (impossible de synchroniser plusieurs dossiers en même temps), ça passe en clair, il y a quelques instabilités, c'est verbeux et c'est en ligne de commande, il y aura certainement des problèmes si vous êtes derrière un NAT/pare-feu… mais ça marche. Je pense que ce logiciel peut servir à beaucoup de monde, donc j'ai décidé de l'annoncer pour attendre les retours des moules les plus aventureuses.

Rakoshare se limitera fortement à la synchronisation de dossiers. J'estime que ce cas d'utilisation est suffisant pour remplir la majorité des besoins (puisque tout est potentiellement fichier, et à peu près n'importe quel utilisateur comprend les principes de base du système de fichier).

Pourquoi ne pas avoir choisi…

rsync ?

rsync est le vénérable outil de transfert de dossiers, initialement connu pour son efficacité dans le protocole de transport lui-même (rsync considère à juste titre que les échanges réseau sont la partie la plus couteuse d'un échange de données, et se débrouille pour minimiser la quantité d'information à faire transiter) mais qui a su s'imposer comme le standard du transfert ad-hoc par son incroyable quantité d'options.

Malheureusement, rsync est un outil assez « bas-niveau », dans la mesure où son invocation reste relativement manuelle, et il n'est fait que pour synchroniser 2 machines entre elles.

unison ?

Unison est écrit en OCaml, un langage qui m'intéressait également, en tout cas théoriquement. Par rapport à rsync, il a l'avantage de gérer les synchronisations dans les deux sens ; malheureusement il est également fait pour les échanges entre 2 machines.

owncloud/seafile ?

L'un des prérequis que je voulais était de ne pas avoir à installer de serveur, pour garder une simplicité maximale. Mon but est bien que les gens qui utilisent Bittorrent Sync (voire Dropbox) utilisent Rakoshare; il ne faut pas passer par une étape aussi limitante.

camlistore ?

Camlistore est un projet de « dépôt » personnel d'un peu tout et n'importe quoi; lâchez-y vos photos et votre musique, et un système d'indexation vous permettra de vous y retrouver plus facilement dans votre masse d'information. Je pense que Camlistore est réellement intéressant pour ceux qui produisent/reçoivent beaucoup d'informations et souhaitent en garder une trace dans un lieu sûr; malheureusement la procédure d'installation n'est pas encore aussi simple, et dans l'état, vous devrez dupliquer vos informations entre votre système de fichiers et Camlistore, les garder en synchronisation…

clearskies ou syncthing ?

Ces deux projets semblent être les alternatives libre les plus connues à Bittorrent Sync; l'une est en Go et introduit une notion inutile (à mon avis) de nœuds en plus d'un nouveau protocole, qui fait (encore à mon avis) l'erreur d'être trop orienté fichier, au lieu d'avoir une vision globale du dossier, comme le fait git avec succès, et l'autre est en C++, que je ne connais pas assez pour pouvoir y contribuer. Oh et il a également son propre protocole.

Les autres ?

Il doit exister encore des dizaines d'alternatives que je n'ai pas citées, mais aucune d'elles n'a su me convaincre dans la simplicité d'installation et d'utilisation. Peut-être fais-je une erreur, l'avenir nous le dira.

L'avenir

Comme dit précédemment, il y a un minimum de points à implémenter avant de pouvoir prétendre avoir un remplacement à Bittorrent Sync, mais je compte justement garder les choses simples (le protocole, basé sur Bittorrent, a peu de chances d'évoluer même si c'est techniquement possible) pour que la communauté de développeurs puisse venir renforcer la bête. Dans un avenir lointain, il sera certainement possible de carrément remplacer Dropbox ou encore réinventer le web… mais ne brusquons pas les choses !

En attendant, vous pouvez jouer avec; n'hésitez pas à remonter les problèmes sur le tracker et à venir discuter sur la liste de diffusion (rakoshare servi-par librelist.com).

Note: ce document est placé sous licence CC0

Lire les commentaires

par rakoo, Nÿco, tankey, Xavier Claude, Benoît Sibaud, palm123

DLFP - Dépêches

LinuxFr.org

Entretien avec GValiente à propos de Butano

 -  16 avril - 

GValiente développe un SDK pour créer des jeux pour la console Game Boy Advance : Butano.Cet entretien revient sur son parcours et les raisons (...)


Nouveautés d'avril 2024 de la communauté Scenari

 -  11 avril - 

Scenari est un ensemble de logiciels open source dédiés à la production collaborative, publication et diffusion de documents multi-support. Vous (...)


Annuaire de projets libres (mais pas de logiciels)

 -  9 avril - 

Les communs sont une source énorme de partage !S’il est plutôt facile dans le monde francophone de trouver des ressources logicielles (Merci (...)


Les enchères en temps réel, un danger pour la vie privée mais aussi pour la sécurité européenne

 -  7 avril - 

Les enchères en temps réel, ou Real-Time Bidding (RTB), sont une technologie publicitaire omniprésente sur les sites web et applications mobiles (...)


XZ et liblzma: Faille de sécurité volontairement introduite depuis au moins deux mois

 -  31 mars - 

Andres Freund, un développeur Postgres, s’est rendu compte dans les derniers jours que xz et liblzma ont été corrompus par l’un des mainteneurs du (...)