C.J. Silverio voormalig technisch directeur van NPM Inc., introduceerde een nieuwe pakketrepository genaamd Entropic, dat wordt ontwikkeld als een gedistribueerd alternatief voor NPM, niet gecontroleerd door een specifiek bedrijf.
De Entropic-code Het is geschreven in JavaScript en wordt gedistribueerd onder de Apache 2.0-licentie. Het project is nog maar een maand in ontwikkeling en bevindt zich in de vroege prototypefase, maar het ondersteunt al basisbewerkingen zoals het verbinden, publiceren en installeren van pakketten.
Over Entropic
De reden voor het maken van Entropic is de volledige afhankelijkheid van het JavaScript / Node.js-ecosysteem van NPM Inc, dat de ontwikkeling van de pakketbeheerder en het onderhoud van de NPM-repository regelt.
Dit van zijn kant kwam voort uit de recente opeenvolging van ontslagen en veranderingen in het management bij NPM Inc en zijn voorkeuren bij investeerders die een gevoel van onzekerheid creëerden over de toekomst van NPM en een gebrek aan vertrouwen dat het bedrijf de belangen van de gemeenschap zal verdedigen in plaats van investeerders.
Volgens Silverio zijn de zaken van NPM In niet te vertrouwen.c., aangezien er bij de genomen maatregelen geen rekening wordt gehouden met de stem of de stem van de gemeenschap.
En hij vreest dat de acties van het bedrijf niet in overeenstemming zijn met de belangen van de JavaScript-gemeenschap, omdat het zich eerst op winstgevendheid moet richten.
Zeer gewilde functies zoals het ondertekenen van pakketten zullen waarschijnlijk niet worden ontwikkeld omdat ze geen geld zullen verdienen, zei hij.
Bovendien heeft betwijfelt of het bedrijf interesse toont in het verminderen van klantinteracties met zijn backend omdat elke netwerkinteractie potentieel waardevolle gegevens genereert.
Silverio betwijfelt ook of NPM Inc geïnteresseerd is in het optimaliseren van de interactie met zijn backend, aangezien dit zal leiden tot een afname van datastromen die potentieel interessant zijn vanuit een oogpunt van monetarisering.
Elke keer dat u het "npm audit" -commando uitvoert, wordt de inhoud van het pakketvergrendelingsbestand, dat veel interessante informatie bevat over wat de ontwikkelaar doet, naar buiten afgeleverd.
Als reactie hierop zijn verschillende prominente leden van de JavaScript / Node.js-gemeenschap begonnen met het ontwikkelen van alternatieven die niet door individuele bedrijven worden beheerd.
Hoe werkt Entropic?
Het Entropic-systeem gebruikt het principe van een gefedereerd netwerk, waarin een ontwikkelaar een server kan inzetten met een opslagplaats van de pakketten die hij gebruikt en deze kan verbinden met een gemeenschappelijk gedistribueerd netwerk dat geïsoleerde privéopslagplaatsen met elkaar verbindt.
Entropic impliceert het naast elkaar bestaan ​​van vele repositories, waarmee de interactie plaatsvindt binnen het kader van de normale workflow.
Alle pakketten zijn gescheiden met behulp van naamruimten en bevatten informatie over de host waar uw belangrijkste repository zich bevindt.
De naamruimte is in wezen de naam van de eigenaar van een pakket of een groep beheerders die in aanmerking komen om updates uit te geven.
Over het algemeen ziet het pakketadres er als volgt uit: «[e-mail beveiligd]/pkg-name". Metadata en afhankelijkheidsinformatie worden gedefinieerd in TOML-formaat.
Als een pakket gekoppeld door afhankelijkheden van andere repositories in de lokale repository wordt geplaatst, worden deze pakketten gedupliceerd in de lokale repository.
Daarom de lokale repository wordt zelfvoorzienend en bevat kopieën van alle noodzakelijke afhankelijkheden.
Er is een tussenlaag om te communiceren met de klassieke NPM-repository, die wordt behandeld als een enkel toegankelijk bestand. Dit omvat het installeren van pakketten van NPM met behulp van de lokaal geïmplementeerde Entropic-omgeving.
Voor administratie wordt een toolkit voor de opdrachtregel geleverd wat de implementatie van repositories op uw lokale netwerk vereenvoudigt.
Entropic biedt een nieuwe bestandsgeoriënteerde API en opslagsysteem dat de hoeveelheid gegevens die via het netwerk wordt gedownload tot een minimum beperkt.
Entropic wordt gepresenteerd als een universeel systeem dat kan worden gebruikt om repositories voor pakketten in elke programmeertaal te creëren, maar toch is Entropic ontworpen met het oog op JavaScript en is het het meest geschikt voor projecten in deze taal.