Facebook ouvre eXecutable ARchives
Un outil de création de paquetages Python exécutables pour Linux et macOS

L’information est extraite d’un billet de blog paru il y a peu. Le géant des réseaux sociaux annonce la publication sous licence BSD d’eXecutable Archives. L’outil est disponible sur la célèbre plateforme d’hébergement et de gestion des versions de logiciels – GitHub et sur le dépôt tiers officiel du langage Python – PyPI.

Nom : XAR.jpeg
Affichages : 4202
Taille : 9,1 Ko

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 ?

Que pensez-vous de cet outil ?

Lequel utilisez-vous quotidiennement pour le déploiement de vos paquetages Python ? En quoi celui de Facebook pourrait-il être meilleur ou moins bon ?

Voir aussi :

Facebook rend open source Infer pour aider les développeurs à trouver des bogues dans leur code

Facebook publie en open source un ensemble d'API de chiffrement, Conceal est désormais disponible pour les développeurs Android

Intelligence artificielle : Facebook publie en open source ELF OpenGo, son IA qui a battu d'autres IA au jeu de Go, ainsi que des professionnels