L'ancien CTO de NPM développe un référentiel de packages distribués Entropic

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

La raison de la création d'Entropic est la dépendance totale de l'écosystème JavaScript/Node.js vis-à-vis de NPM Inc, qui contrôle le développement du gestionnaire de packages et la maintenance du référentiel NPM. C’est là qu’une entreprise à but lucratif contrôle seule un système dont dépendent des millions de développeurs et d’applications JavaScript et qui traite des milliards de téléchargements de packages par semaine.

Une récente série de licenciements d'employés, de changements de direction et le flirt de NPM Inc avec les investisseurs ont créé un sentiment d'incertitude quant à l'avenir de NPM et un manque de confiance dans le fait que l'entreprise défendra les intérêts de la communauté plutôt que ceux des investisseurs. Selon Silverio, on ne peut pas faire confiance à l'entreprise NPM Inc car la communauté n'a pas les moyens de la tenir responsable de ses actions. De plus, l’accent mis sur le profit empêche la mise en œuvre d’opportunités qui sont primordiales du point de vue de la communauté, mais qui ne rapportent pas d’argent et nécessitent des ressources supplémentaires, comme le soutien à la vérification des signatures numériques.

Silverio doute également que NPM Inc soit intéressé à optimiser les interactions avec son backend, car cela entraînerait une diminution des flux de données potentiellement intéressants du point de vue de la monétisation. Chaque fois que vous exécutez la commande "audit npm» le contenu du fichier est envoyé en externe verrouillage du paquet, qui comprend de nombreuses informations intéressantes sur ce que fait le développeur. En réponse, plusieurs membres éminents de la communauté JavaScript/Node.js ont commencé à développer une alternative qui n'était pas contrôlée par des entreprises individuelles.

Le système Entropic utilise le principe d'un réseau fédéré, dans lequel un développeur, utilisant ses propres ressources, peut déployer un serveur avec un référentiel de packages qu'il utilise et le connecter à un réseau distribué commun qui réunit des référentiels privés disparates en un seul tout. Entropic implique la coexistence de nombreux référentiels, interagissant avec eux dans le cadre d'un flux de travail normal.

Tous les packages sont séparés à l'aide d'espaces de noms et incluent des informations sur l'hôte qui héberge leur référentiel principal.
Un espace de noms est essentiellement le nom du propriétaire du package ou du groupe de responsables qui ont le droit de publier des mises à jour. En général, l'adresse du paquet ressemble à "[email protected]/nom-pkg".
Les métadonnées et les informations de dépendance sont définies au format TOML.

Si un package est placé dans un référentiel local lié par des dépendances d'autres référentiels, ces packages sont mis en miroir dans le référentiel local. Cela rend le référentiel local autonome et inclut des copies de toutes les dépendances nécessaires. Il existe une couche pour interagir avec le référentiel NPM classique, qui est traité comme une archive en lecture seule. Vous pouvez également installer des packages à partir de NPM à l'aide d'environnements Entropic déployés localement.

Pour la gestion, des outils de ligne de commande sont fournis pour simplifier le déploiement des référentiels sur votre réseau local. Entropic propose des produits complètement nouveaux API orientée fichier et un système de stockage qui minimise la quantité de données téléchargées sur le réseau. Entropic est présenté comme un système universel pouvant être utilisé pour créer des référentiels de packages dans n'importe quel langage de programmation, mais Entropic est néanmoins développé en pensant à JavaScript et convient mieux aux projets dans ce langage.

Source: opennet.ru

Ajouter un commentaire