Voormalig NPM CTO ontwikkelt gedistribueerde pakketrepository Entropic

CJ Silverio, die eind vorig jaar haar functie als CTO van NPM Inc verliet, gepresenteerd nieuwe pakketrepository Entropisch, dat wordt ontwikkeld als een gedistribueerd alternatief voor NPM, dat niet onder zeggenschap staat van een specifiek bedrijf. De code van Entropic is geschreven in JavaScript en gedistribueerd door gelicentieerd onder Apache 2.0. Het project is nog maar een maand in ontwikkeling en bevindt zich in de eerste prototypefase, maar ondersteunt al basisbewerkingen zoals het verbinden, publiceren en installeren van pakketten.

De reden voor de oprichting 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 is waar een op winst gericht bedrijf de exclusieve controle heeft over een systeem waarvan miljoenen JavaScript-ontwikkelaars en -applicaties afhankelijk zijn, en dat miljarden pakketdownloads per week verwerkt.

Een recente reeks ontslagen van werknemers, veranderingen in het management en de flirt van NPM Inc met investeerders hebben geleid tot een gevoel van onzekerheid over de toekomst van NPM en tot een gebrek aan vertrouwen dat het bedrijf de belangen van de gemeenschap zal verdedigen in plaats van die van investeerders. Volgens Silverio is het bedrijf van NPM Inc niet te vertrouwen omdat de gemeenschap niet over de macht beschikt om het verantwoordelijk te houden voor zijn daden. Bovendien verhindert de focus op het maken van winst de implementatie van mogelijkheden die primair zijn vanuit het gezichtspunt van de gemeenschap, maar die geen geld opleveren en extra middelen vereisen, zoals ondersteuning voor de verificatie van digitale handtekeningen.

Silverio betwijfelt ook dat NPM Inc geïnteresseerd is in het optimaliseren van de interacties met zijn backend, omdat dit zal leiden tot een afname van datastromen die potentieel interessant zijn vanuit het oogpunt van het genereren van inkomsten. Elke keer dat u het commando "npm-audit» de inhoud van het bestand wordt extern verzonden pakket-slot, die veel interessante informatie bevat over wat de ontwikkelaar doet. Als reactie daarop begonnen verschillende prominente leden van de JavaScript/Node.js-gemeenschap een alternatief te ontwikkelen dat niet door individuele bedrijven werd beheerd.

Het Entropic-systeem maakt gebruik van het principe van een federatief netwerk, waarin een ontwikkelaar, met behulp van zijn eigen middelen, een server kan inzetten met een repository van pakketten die hij gebruikt, en deze kan verbinden met een gemeenschappelijk gedistribueerd netwerk dat ongelijksoortige private repository's tot één geheel verenigt. Entropic omvat het naast elkaar bestaan ​​van vele repositories, waarbij de interactie ermee plaatsvindt als onderdeel van een normale workflow.

Alle pakketten zijn gescheiden met behulp van naamruimten en bevatten informatie over de host die hun primaire repository host.
Een naamruimte is in wezen de naam van de pakketeigenaar of een groep onderhouders die het recht hebben om updates uit te brengen. Over het algemeen ziet het pakketadres er als volgt uit:[e-mail beveiligd]/pkg-naam".
Metagegevens en afhankelijkheidsinformatie worden in het formaat gedefinieerd TOML.

Als een pakket in een lokale opslagplaats wordt geplaatst en afhankelijkheden heeft van andere opslagplaatsen, worden deze pakketten gespiegeld in de lokale opslagplaats. Hierdoor is de lokale repository autonoom en bevat deze kopieën van alle noodzakelijke afhankelijkheden. Er is een laag voor interactie met de klassieke NPM-repository, die wordt behandeld als een alleen-lezen archief. U kunt ook pakketten van NPM installeren met behulp van lokaal geïmplementeerde Entropic-omgevingen.

Voor beheer zijn er opdrachtregelhulpmiddelen beschikbaar die de implementatie van repository's op uw lokale netwerk vereenvoudigen. Entropic biedt compleet nieuw bestandsgeoriënteerde API en een opslagsysteem dat de hoeveelheid gegevens die via het netwerk wordt gedownload, minimaliseert. Entropic wordt aangeprezen als een universeel systeem dat kan worden gebruikt om opslagplaatsen voor pakketten in elke programmeertaal te maken, maar Entropic is niettemin ontwikkeld met JavaScript in gedachten en is het meest geschikt voor projecten in die taal.

Bron: opennet.ru

Voeg een reactie