CJ Silverio, die Ende letzten Jahres das Amt der technischen Direktorin von NPM Inc verlassen hat, ein neues Paket-Repository , das sich als verteilte Alternative zu NPM entwickelt, die nicht von einem bestimmten Unternehmen kontrolliert wird. Der Entropic-Code ist in JavaScript geschrieben und unter der Apache 2.0-Lizenz. Das Projekt existiert erst seit einem Monat und befindet sich in der Anfangsprototyp-Phase, unterstützt jedoch bereits grundlegende Vorgänge wie das Verbinden, Veröffentlichen und Installieren von Paketen.
Als Grund für die Schaffung von Entropic wird die vollständige Abhängigkeit des JavaScript/Node.js-Ökosystems von NPM Inc genannt, das die Entwicklung des Paketmanagers und die Wartung des NPM-Repositories kontrolliert. Es ist eine Situation entstanden, in der ein profitorientiertes Unternehmen das System, von dem Millionen von Entwicklern und Anwendungen auf JavaScript abhängen, allein kontrolliert und das Milliarden von Paketdownloads pro Woche verarbeitet.
Eine récente Reihe von Mitarbeiterentlassungen, ein Führungswechsel und das Spiel mit Investoren durch NPM Inc haben ein Gefühl der Ungewissheit bezüglich der zukünftigen Entwicklung von NPM und das Misstrauen geweckt, dass das Unternehmen die Interessen der Gemeinschaft und nicht die der Investoren vertreten wird. Silverio ist der Meinung, dass NPM Inc nicht vertraut werden kann, da die Gemeinschaft keine Mittel hat, um das Unternehmen für sein Handeln zur Verantwortung zu ziehen. Darüber hinaus behindert die Orientierung an Gewinnstreben die Umsetzung grundlegender Möglichkeiten aus Sicht der Gemeinschaft, die jedoch keine Einnahmen bringen und zusätzliche Ressourcen erfordern, wie zum Beispiel die Unterstützung von digitalen Signaturverifikationen.
Silverio zweifelt zudem daran, dass NPM Inc an einer Optimierung der Interaktion mit ihrem Backend interessiert ist, da dies zu einem Rückgang der Datenströme führen würde, die potenziell monetarisierungsrelevant sind. Bei jedem Ausführen des Kommandos „“ wird der Inhalt der Datei , die viele interessante Informationen darüber enthält, mit was sich der Entwickler beschäftigt. In Reaktion darauf haben mehrere prominente Mitglieder der JavaScript/Node.js-Community mit der Entwicklung einer Alternative begonnen, die nicht von einzelnen Unternehmen kontrolliert wird.
Das Entropic-System verwendet das Prinzip eines föderierten Netzwerks, in dem der Entwickler auf seinen Ressourcen einen Server mit einem Repository der von ihm verwendeten Pakete bereitstellen und ihn mit einem gemeinsamen verteilten Netzwerk verbinden kann, das disparate private Repositories zu einem Ganzen zusammenführt. Entropic impliziert das Zusammenspiel vieler Repositories, mit denen im Rahmen des regulären Arbeitsablaufs interagiert wird.
Alle Pakete werden unter Verwendung von Namensräumen organisiert und enthalten Informationen über den Host, auf dem ihr primäres Repository angelegt ist.
Der Namensraum stellt im Wesentlichen den Namen des Paketinhabers oder der Gruppe von Maintainer dar, die das Recht zur Veröffentlichung von Updates besitzen. In allgemeiner Form sieht die Adresse des Pakets aus wie «namespace@repohost.com/pkg-name».
Metadaten und Abhängigkeiten werden im Format .
Im Falle der Bereitstellung eines Pakets in einem lokalen Repository, das Abhängigkeiten aus anderen Repositories hat, werden diese Pakete im lokalen Repository gespiegelt. Dadurch wird das lokale Repository autark und enthält Kopien aller erforderlichen Abhängigkeiten. Es gibt eine Schicht zur Interaktion mit dem klassischen NPM-Repository, das im Nur-Lesen-Modus als Archiv behandelt wird. Zudem können Pakete aus NPM installiert werden, indem lokal bereitgestellte Entropic-Umgebungen genutzt werden.
Zur Verwaltung steht ein Kommandozeilen-Tool zur Verfügung, das die Bereitstellung von Repositories im lokalen Netzwerk vereinfacht. Entropic bietet prinzipiell neue und Speichersysteme, die das Volumen der über das Netzwerk geladenen Daten minimieren. Entropic wird als universelles System präsentiert, das zur Erstellung von Repositories für Pakete in beliebigen Programmiersprachen verwendet werden kann, dennoch wird Entropic mit einem Fokus auf JavaScript entwickelt und eignet sich am besten für Projekte in dieser Sprache.

Quelle: opennet.ru
