Der ehemalige Technische Direktor von NPM entwickelt ein verteiltes Paket-Repository namens Entropic.

CJ Silverio, die Ende letzten Jahres die Position des technischen Direktors bei NPM Inc. verlassen hat, präsentierte ein neues Paket-Repository, Entropicdas sich als verteilte Alternative zu NPM entwickelt und nicht unter die Kontrolle eines bestimmten Unternehmens fällt. Der Entropic-Code ist in JavaScript geschrieben und wird unter der GPLv3-Lizenz bereitgestellt. unter der Apache 2.0-Lizenz. Das Projekt ist erst einen Monat alt und befindet sich in der Anfangsprototyp-Phase, unterstützt aber bereits grundlegende Operationen wie das Anschließen, 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 Pflege des NPM-Repositories kontrolliert. Es hat sich eine Situation ergeben, in der ein gewinnorientiertes Unternehmen das System einseitig kontrolliert, von dem Millionen von Entwicklern und JavaScript-Anwendungen abhängen, und das Milliarden von Paket-Downloads pro Woche verarbeitet.

Die jüngste Welle von Mitarbeiterentlassungen, Führungswechsel und das Flirten von NPM Inc. mit Investoren haben ein Gefühl der Ungewissheit über die Zukunft von NPM und ein Misstrauen gegenüber der Fähigkeit des Unternehmens, die Interessen der Community und nicht die der Investoren zu vertreten, geschaffen. Laut Silverio kann man NPM Inc. nicht vertrauen, da die Community keine Möglichkeiten hat, sie für ihr Handeln zur Verantwortung zu ziehen. Darüber hinaus behindert die Ausrichtung auf Profit die Umsetzung von Möglichkeiten, die aus Sicht der Community vorrangig sind, jedoch kein Geld einbringen und zusätzliche Ressourcen erfordern, wie die Unterstützung der digitalen Signaturverifizierung.

Silverio bezweifelt ebenfalls, dass NPM Inc. daran interessiert ist, die Interaktion mit ihrem Backend zu optimieren, da dies zu einem Rückgang von Datenströmen führen würde, die potenziell monetarisierbar sind. Bei jedem Aufruf des Befehls „npm audit“ wird der Inhalt der Datei package-lock, das viele interessante Informationen darüber enthält, womit sich der Entwickler beschäftigt. Als Reaktion darauf begannen mehrere prominente Mitglieder der JavaScript/Node.js-Community mit der Entwicklung einer Alternative, die nicht unter der Kontrolle einzelner Unternehmen steht.

Das Entropic-System basiert auf dem Prinzip eines föderierten Netzwerks, in dem Entwickler auf ihren eigenen Systemen einen Server mit einem Repository der verwendeten Pakete bereitstellen und ihn mit einem gemeinsamen dezentralisierten Netzwerk verbinden können, das verschiedene private Repositories integriert. Entropic ermöglicht das Zusammenleben vieler Repositories, deren Interaktion im Rahmen des üblichen Arbeitsablaufs erfolgt.

Alle Pakete werden unter Verwendung von Namensräumen geteilt und enthalten Informationen über den Host, auf dem ihr primäres Repository gehostet wird.
Ein Namensraum stellt im Wesentlichen den Namen des Paketinhabers oder einer Gruppe von Maintainer dar, die berechtigt sind, Updates herauszugeben. Allgemein sieht die Paketadresse so aus: „namespace@repohost.com/pkg-name“.
Metadaten und Abhängigkeitsinformationen werden im Format TOML.

Bei der Ablage eines Pakets in einem lokalen Repository, das von Abhängigkeiten aus anderen Repositories abhängt, werden diese Pakete im lokalen Repository gespiegelt. So wird das lokale Repository selbstgenügsam und enthält Kopien aller notwendigen Abhängigkeiten. Es gibt eine Schicht für die Interaktion mit dem klassischen NPM-Repository, die als nur lesbares Archiv behandelt wird. Außerdem können Pakete aus NPM installiert werden, indem lokal eingerichtete Entropic-Umgebungen verwendet werden.

Für die Verwaltung steht ein Kommandozeilenwerkzeug zur Verfügung, das die Bereitstellung von Repositories in Ihrem lokalen Netzwerk vereinfacht. Entropic bietet grundlegend neue dateiorientierte APIs und Speichersysteme, die die Menge an über das Netzwerk heruntergeladenen Daten minimieren. Entropic wird als universelles System präsentiert, das zur Erstellung von Repositories für Pakete in allen Programmiersprachen verwendet werden kann, wird jedoch mit Blick auf JavaScript entwickelt und eignet sich am besten für Projekte in dieser Sprache.

Video abspielen

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster