L'ancien directeur technique de NPM développe le dépôt de paquets distribué Entropic.

CJ Silverio, qui a quitté son poste de directeur technique chez NPM Inc à la fin de l'année dernière, présentée un nouveau dépôt de paquets Entropic, qui se développe comme une alternative décentralisée à NPM, non contrôlée par une entreprise spécifique. Le code d'Entropic est écrit en JavaScript et est distribué sous licence Apache 2.0. Le projet est en développement depuis seulement un mois et en est au stade du prototype initial, mais supporte déjà des opérations de base telles que la connexion, la publication et l'installation de paquets.

La raison invoquée pour la création d'Entropic est la dépendance totale de l'écosystème JavaScript/Node.js à l'égard de NPM Inc, qui contrôle le développement du gestionnaire de paquets et le maintien du dépôt NPM. Une situation s'est créée où une entreprise à but lucratif contrôle seule un système dont dépendent des millions de développeurs et d'applications JavaScript, traitant des milliards de téléchargements de paquets chaque semaine.

Une récente série de licenciements, le changement de direction et les manœuvres de NPM Inc avec les investisseurs ont créé un sentiment d'incertitude quant à l'avenir de NPM et une méfiance quant à la capacité de l'entreprise à défendre les intérêts de la communauté plutôt que ceux des investisseurs. Selon Silverio, NPM Inc ne peut pas être fiable car la communauté n'a pas de leviers pour la tenir responsable de ses actions. De plus, l'orientation vers le profit entrave la mise en œuvre de capacités essentielles pour la communauté, mais non rentables et nécessitant des ressources supplémentaires, telles que le soutien à la vérification par signature numérique.

Silverio doute également que NPM Inc soit intéressée par l'optimisation de son interaction avec son backend, car cela pourrait réduire les flux de données potentiellement intéressants pour la monétisation. À chaque exécution de la commande «npm audit», le contenu du fichier package-lock, qui inclut de nombreuses informations intéressantes sur ce que fait le développeur, est exposé. En réaction, plusieurs membres éminents de la communauté JavaScript/Node.js ont commencé à développer une alternative non contrôlée par des entreprises spécifiques.

Le système Entropic utilise le principe d'un réseau fédératif, où le développeur peut déployer un serveur avec son propre référentiel de paquets sur ses propres infrastructures et le connecter à un réseau distribué commun, unissant en un tout des référentiels privés disparates. Entropic implique la coexistence de nombreux référentiels, avec lesquels l'interaction se fait dans le cadre d'un processus de travail habituel.

Tous les paquets sont séparés en utilisant des espaces de noms et incluent des informations sur l'hôte où se trouve leur référentiel principal.
Un espace de noms représente en essence le nom du propriétaire du paquet ou du groupe de mainteneurs ayant le droit de publier des mises à jour. De manière générale, l'adresse d'un paquet se présente sous la forme «namespace@repohost.com/pkg-name».
Les métadonnées et les informations sur les dépendances sont définies au format TOML.

En cas d'hébergement dans un référentiel local d'un paquet lié à des dépendances provenant d'autres référentiels, ces paquets sont mis en miroir dans le référentiel local. Ainsi, le référentiel local devient autonome et inclut des copies de toutes les dépendances nécessaires. Il existe une couche pour interagir avec un référentiel NPM classique, traité comme une archive en lecture seule. Il est également possible d'installer des paquets depuis NPM en utilisant des environnements Entropic déployés localement.

Un outil en ligne de commande est fourni pour simplifier le déploiement des référentiels dans son propre réseau local. Entropic propose un API orienté fichier et un système de stockage qui minimisent la quantité de données téléchargées via le réseau. Entropic se présente comme un système universel, pouvant être utilisé pour créer des référentiels de paquets dans n'importe quel langage de programmation, mais reste conçu en tenant compte de JavaScript, étant le plus adapté aux projets dans ce langage.

Lire la vidéo

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster