Den tidligere tekniske direktør for NPM udvikler det distribuerede pakke repository Entropic

CJ Silverio, der forlod stillingen som teknisk direktør hos NPM Inc i slutningen af sidste år, præsenterede en ny pakke-repository Entropic, som udvikles som et distribueret alternativ til NPM, der ikke er kontrolleret af et bestemt firma. Koden til Entropic er skrevet i JavaScript og distribueres licenseret under Apache 2.0. Projektet har eksisteret i kun en måned og er i en tidlig prototypefase, men understøtter allerede grundlæggende operationer som tilslutning, publicering og installation af pakker.

Årsagen til oprettelsen af Entropic er den totale afhængighed af JavaScript/Node.js-økosystemet af NPM Inc, som kontrollerer udviklingen af pakkehåndtereren og vedligeholdelsen af NPM-repositoriet. Der er opstået en situation, hvor et profitmotiveret firma ensidigt kontrollerer et system, som millioner af udviklere og applikationer på JavaScript er afhængige af, og som håndterer milliarder af pakke-downloads om ugen.

Den seneste bølge af medarbejderafskedigelser, lederskabsændringer og NPM Inc's flirt med investorer har skabt en følelse af usikkerhed om fremtiden for NPM og mistillid til, at firmaet vil varetage fællesskabets interesser og ikke investorernes. Ifølge Silverio kan NPM Inc's forretning ikke stoles på, da fællesskabet ikke har nogen midler til at holde det ansvarligt for sine handlinger. Desuden hæmmer fokus på profit realiseringen af primære muligheder, som er vigtige for fællesskabet, men ikke indbringende og kræver yderligere ressourcer, såsom støtte til verifikation via digital signatur.

Silverio tvivler også på, at NPM Inc er interesseret i at optimere interaktionen med deres backend, da det vil resultere i et fald i datat strømme, som potentielt er interessante rent monetært. Ved hver kørsel af kommandoen "npm audit" frigives indholdet af filen package-lock, som indeholder mange interessante oplysninger om, hvad udvikleren arbejder på. Som reaktion har flere fremtrædende medlemmer af JavaScript/Node.js-fællesskabet påbegyndt udviklingen af et alternativ, der ikke er kontrolleret af enkeltstående firmaer.

Entropic-systemet benytter princippet om et fødereret netværk, hvor udvikleren kan implementere en server med et repository for de anvendte pakker på sine egne ressourcer og forbinde det til et fælles distribueret netværk, der forener adskilte private repositories til én enhed. Entropic muliggør sameksistens af mange repositories, som interageres med i rammerne af en almindelig arbejdsproces.

Alle pakker opdeles ved hjælp af navnerum og inkluderer information om værten, hvor deres primære repository er placeret.
Navnerummet repræsenterer i princippet navnet på pakkeejeren eller gruppen af vedligeholdere, der har ret til at udgive opdateringer. Generelt set ser adressen for en pakke således ud: «namespace@repohost.com/pkg-name».
Metadata og afhængigheder defineres i formatet TOML.

Ved opbevaring af en pakke i et lokalt repository, der har afhængigheder fra andre repositories, spejles de pakker i det lokale repository. På denne måde bliver det lokale repository selvforsynende og inkluderer kopier af alle nødvendige afhængigheder. Der er et lag til interaktion med det klassiske NPM-repository, som behandles som et tilgængeligt arkiv i skrivebeskyttet tilstand. Det er også muligt at installere pakker fra NPM, ved hjælp af lokalt implementerede Entropic-miljøer.

Der leveres et kommandolinjeværktøj, der forenkler implementeringen af repositories i sit lokale netværk. Entropic tilbyder principielt nye filbaserede API og lagringssystemer, der minimerer mængden af data, der hentes over nettet. Entropic præsenteres som et universelt system, der kan anvendes til oprettelse af repositories for pakker på alle programmeringssprog, men det udvikles dog med fokus på JavaScript og er bedst egnet til projekter på dette sprog.

Afspil video

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster