De voormalige technisch directeur van NPM ontwikkelt de gedistribueerde pakketrepository Entropic

CJ Silverio, die vorig jaar haar functie als technisch directeur van NPM Inc. verliet, heeft geïntroduceerd een nieuwe pakketrepository Entropic, dat zich ontwikkelt als een gedistribueerd alternatief voor NPM, dat niet onder controle staat van een specifiek bedrijf. De code van Entropic is geschreven in JavaScript en wordt verspreid is onder de Apache 2.0-licentie. Het project is pas een maand oud en bevindt zich in de vroege prototypefase, maar ondersteunt al basisfunctionaliteiten zoals het verbinden, publiceren en installeren van pakketten.

Als reden voor de oprichting van Entropic wordt aangehaald dat het volledige ecosysteem van JavaScript/Node.js afhankelijk is van NPM Inc., dat de ontwikkeling van de package manager en het onderhoud van de NPM-repository controleert. Er is een situatie ontstaan waarin een winstgericht bedrijf uitsluitend het systeem beheert waar miljoenen ontwikkelaars en toepassingen in JavaScript van afhankelijk zijn, en dat wekelijks miljarden pakketdownloads verwerkt.

Een recente reeks ontslagen, de wisseling van leidinggevenden en de flirt van NPM Inc. met investeerders hebben een gevoel van onzekerheid gecreëerd over de toekomst van NPM en wantrouwen over de vraag of het bedrijf de belangen van de gemeenschap zal verdedigen in plaats van die van investeerders. Volgens Silverio is het niet mogelijk om NPM Inc. te vertrouwen, omdat de gemeenschap geen middelen heeft om hen ter verantwoording te roepen voor hun acties. Bovendien belemmert de focus op winstgevendheid de uitvoering van primair belangrijke functies vanuit het perspectief van de gemeenschap, die geen geld opleveren en aanvullende middelen vereisen, zoals ondersteuning voor verificatie met digitale handtekeningen.

Silverio betwijfelt ook of NPM Inc. geïnteresseerd is in het optimaliseren van de interactie met hun backend, omdat dit zou leiden tot een daling van datastromen die potentieel interessant zijn vanuit het oogpunt van monetisatie. Bij elke uitvoering van de commando «npm audit» wordt de inhoud van het bestand package-lock, dat veel interessante informatie bevat over wat de ontwikkelaar doet, prijsgegeven. In reactie daarop zijn verschillende prominente leden van de JavaScript/Node.js-gemeenschap begonnen met de ontwikkeling van een alternatief dat niet onder specifieke bedrijven valt.

Het Entropic-systeem gebruikt het principe van een federatief netwerk, waarin een ontwikkelaar op zijn eigen infrastructuur een server met een repository van de door hem gebruikte pakketten kan opzetten en deze kan aansluiten op een algemeen gedistribueerd netwerk, dat losse privé-repositories in één geheel verenigt. Entropic staat co-existence van meerdere repositories toe, waarmee interactie plaatsvindt binnen het gewone werkproces.

Alle pakketten worden gescheiden door middel van namespaces en bevatten informatie over de host waarop hun primaire repository zich bevindt.
Een namespace vertegenwoordigt in wezen de naam van de eigenaar van het pakket of een groep maintainers, die het recht hebben om updates uit te brengen. In algemene zin ziet het adres van een pakket eruit als "namespace@repohost.com/pkg-name".
Metadata en afhankelijkheidsinformatie worden vastgesteld in het formaat TOML.

Wanneer een pakket dat afhankelijkheden uit andere repositories bevat, in een lokale repository wordt gehost, worden deze pakketten gediend in de lokale repository. Hiermee wordt de lokale repository zelfvoorzienend en bevat kopieën van alle benodigde afhankelijkheden. Er is een laag aanwezig voor interactie met de klassieke NPM-repository, die wordt behandeld als een alleen-lezen archief. Bovendien kunnen pakketten uit NPM worden geïnstalleerd met behulp van lokaal uitgerolde Entropic-omgevingen.

Voor beheer is er een command-line toolset beschikbaar, die het implementeren van repositories in een lokaal netwerk vereenvoudigt. Entropic biedt een fundamenteel nieuwe bestandsgeoriënteerde API en opslag systeem dat de hoeveelheid via het netwerk verzonden data minimaliseert. Entropic wordt gepresenteerd als een universeel systeem dat kan worden toegepast voor het creëren van repositories voor pakketten in elke programmeertaal, maar tegelijkertijd is Entropic ontwikkeld met een focus op JavaScript en het is het beste geschikt voor projecten in deze taal.

Video afspelen

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster