CJ Silverio, som forlot stillingen som CTO i NPM Inc på slutten av fjoråret, nytt pakkelager , som utvikles som et distribuert alternativ til NPM, ikke kontrollert av et spesifikt selskap. Entropics kode er skrevet i JavaScript og lisensiert under Apache 2.0. Prosjektet har bare vært under utvikling i en måned og er på det innledende prototypestadiet, men støtter allerede grunnleggende operasjoner som å koble til, publisere og installere pakker.
Grunnen til opprettelsen av Entropic er den fullstendige avhengigheten til JavaScript/Node.js-økosystemet av NPM Inc, som kontrollerer utviklingen av pakkebehandlingen og vedlikeholdet av NPM-depotet. Det er her et profittsøkende selskap har enekontroll over et system som millioner av JavaScript-utviklere og -applikasjoner er avhengige av, og som behandler milliarder av pakkenedlastinger per uke.
En nylig rekke permitteringer, ledelsesendringer og NPM Incs flørt med investorer har skapt en følelse av usikkerhet om NPMs fremtid og en mangel på tillit til at selskapet vil forkjempe fellesskapets interesser i stedet for investorer. Ifølge Silverio kan ikke NPM Inc-virksomheten stole på fordi fellesskapet ikke har innflytelse til å holde det ansvarlig for sine handlinger. Dessuten hindrer fokuset på å tjene penger implementering av muligheter som er primære fra fellesskapets synspunkt, men som ikke gir penger og krever ekstra ressurser, for eksempel støtte for verifisering av digital signatur.
Silverio tviler også på at NPM Inc er interessert i å optimalisere interaksjoner med sin backend, da dette vil føre til en nedgang i dataflyter som potensielt er interessante fra et inntektsgenereringssynspunkt. Hver gang du kjører kommandoen "» innholdet i filen sendes eksternt , som inneholder mye interessant informasjon om hva utvikleren gjør. Som svar begynte flere fremtredende medlemmer av JavaScript/Node.js-fellesskapet å utvikle et alternativ som ikke ble kontrollert av individuelle selskaper.
Entropic-systemet bruker prinsippet om et forent nettverk, der en utvikler, ved hjelp av sine egne ressurser, kan distribuere en server med et lager av pakker han bruker og koble det til et felles distribuert nettverk som forener forskjellige private depoter til en enkelt helhet. Entropic innebærer sameksistens av mange depoter, og samhandler med dem som en del av en normal arbeidsflyt.
Alle pakker er atskilt ved hjelp av navneområder og inkluderer informasjon om verten som er vert for deres primære depot.
Et navnerom er i hovedsak navnet på pakkeeieren eller gruppen av vedlikeholdere som har tillatelse til å gi ut oppdateringer. Generelt sett ser en pakkeadresse slik ut: «namespace@repohost.com/pkg-name».
Metadata og avhengighetsinformasjon er definert i formatet .
Hvis en pakke er plassert i et lokalt depot som er koblet sammen av avhengigheter fra andre depoter, speiles disse pakkene i det lokale depotet. Dette gjør det lokale depotet selvstendig og inkluderer kopier av alle nødvendige avhengigheter. Det er et lag for å samhandle med det klassiske NPM-depotet, som behandles som et skrivebeskyttet arkiv. Du kan også installere pakker fra NPM ved å bruke lokalt distribuerte Entropic-miljøer.
For administrasjon leveres kommandolinjeverktøy som forenkler distribusjonen av arkiver på ditt lokale nettverk. Entropic tilbyr helt nye og et lagringssystem som minimerer mengden data som lastes ned over nettverket. Entropic er utpekt som et universelt system som kan brukes til å lage repositories for pakker i et hvilket som helst programmeringsspråk, men Entropic er likevel utviklet med tanke på JavaScript og egner seg best for prosjekter på det språket.

Kilde: opennet.ru
