
Chez Facebook, l’outil est utilisé en interne pour la création d’archives qui contiennent des exécutables ainsi que toutes les données et dépendances nécessaires, autrement dit, pour la création d’applications indépendantes des bibliothèques du système d’exploitation hôte. Son utilisation chez le géant des réseaux sociaux fait suite à celle de formats comme le par – basé sur le zip. Le format de fichier xar (prononciation : tsar) emprunte à la philosophie de ses prédécesseurs, à savoir qu’on encapsule exécutables, données et dépendances au sein d’une archive. Toutefois, les archives xar ne nécessitent pas de décompression explicite. Elles sont automatiquement montées au moment de leur exécution et démontées après un délai d’inactivité. Facebook a adopté l’approche squashfs pour atteindre cet objectif. Le géant des réseaux sociaux précise néanmoins qu’il s’agit d’une version modifiée du système de fichiers compressé.
Le format de fichiers xar est optimisé pour la performance en matière de vitesse d’exécution des programmes, mais Facebook n’a pas perdu de vue l’objectif de minimisation de l’espace dans sa conception. La firme de Menlo Park a publié le résultat d’un benchmark qui permet de voir ce qui est réalisable avec ce format de fichier en comparaison au pex et aux applications natives. Avec une archive xar, on peut aller jusqu’à moitié moins de la taille sur disque d’une archive pex et en dessous des 70 % de celle du lot de fichiers déployés en natif (si on fait appel à l’algorithme de compression zstd). Quant à la vitesse d’exécution, une application déployée en xar peut être jusqu’à 92 % et 45 % plus rapide qu’en pex et en natif respectivement. L’outil se prête donc bien au déploiement de costaudes applications.
L’utilisation de l’outil requiert l’installation du module xar disponible sur le dépôt tiers officiel du langage Python. En sus, il faut enchaîner avec la mise en place des systèmes de fichiers squashfs et FUSE qui complémentent la création et le montage des archives xar. Attention, eXecutable ARchives est uniquement disponible pour les plateformes Linux et macOS.
Source : billet Facebook
Et vous ?


Voir aussi :


