CJ Silverio, që braktisi postin e drejtorit teknik të NPM Inc në fund të vitit të kaluar, repoja e re e paketave , e cila po zhvillohet si një alternativë e shpërndarë ndaj NPM, jo e kontrolluar nga një kompani specifike. Kodi i Entropic është shkruar në JavaScript dhe nën licencën Apache 2.0. Projekti po zhvillohet vetëm për një muaj dhe është në fazën e prototipit fillestar, por tashmë mbështet operacionet bazë, si lidhja, publikimi dhe instalimi i paketave.
Si shkak për krijimin e Entropic përmendet varësia totale e ekosistemit JavaScript/Node.js nga NPM Inc, e cila kontrollon zhvillimin e menaxherit të paketave dhe mbështetje për repo NPM. Ka lindur situata ku një kompani e fokusuar në fitim kontrollon tërësisht një sistem nga i cili varen miliona zhvillues dhe aplikacione në JavaScript, dhe që proceson miliarda shkarkimesh paketash në javë.
Një seri kohët e fundit të largimeve të punonjësve, ndryshimi i drejtuesve dhe flirtimi i NPM Inc me investitorët kanë krijuar një ndjenjë pasigurie në lidhje me të ardhmen e NPM dhe mosbesim se kompania do të mbrojë interesat e komunitetit dhe jo ato të investitorëve. Sipas Silverio, biznesit të NPM Inc nuk mund t'i besohet pasi që komuniteti nuk ka mjete për ta bërë përgjegjës për veprimet e tij. Për më tepër, orientimi drejt fitimit pengon realizimin e mundësive që do ishin primare nga pikëpamja e komunitetit, por nuk sjellin para dhe kërkojnë burime të tjera, si mbështetja e verifikimit me nënshkrim digjital.
Silverio gjithashtu dyshon se NPM Inc është e interesuar në optimizimin e ndërveprimit me backend-in e saj, pasi kjo do të çonte në uljen e fluksit të të dhënave që mund të ishin interesante për monetizim. Me çdo ekzekutim të komandës "", dërgohet përjashtimi i përmbajtjes së skedarit , që përfshin shumë informacion interesante për atë se çfarë po bën zhvilluesi. Si përgjigje, disa anëtarë të njohur të komunitetit JavaScript/Node.js kanë filluar zhvillimin e një alternative, jo të kontrolluar nga kompani të veçanta.
Sistemi Entropic përdor parimin e një rrjeti federal, ku zhvilluesi mund të implementojë një server me një depozitë të paketave të përdorura nga ai dhe ta lidhë atë me një rrjet të përgjithshëm të shpërndarë, duke bashkuar depozita private të ndara në një tërë. Entropic nënkupton ekzistencën e shumë depozitave, me të cilat bashkëpunimi bëhet brenda një procesi të zakonshëm pune.
Të gjitha paketat ndahen duke përdorur hapësira emërtimi dhe përfshijnë informacion mbi hostin ku ndodhet depozita e tyre kryesore.
Hapësira emërtimi përfaqëson në thelb emrin e pronarit të paketës ose të një grupi mbajtësish, të cilët kanë të drejtë të publikojnë përditësime. Në një formë të përgjithshme, adresa e paketës duket si «namespace@repohost.com/pkg-name».
Metadatate dhe informacioni mbi varësitë përcaktohen në formatin .
Në rastin e ruajtjes në një depozitë lokale të një pakete, e cila lidhet me varësi nga depozita të tjera, ato paketa sinkronizohen në depozitën lokale. Kështu, depozita lokale bëhet e vetëqëndrueshme dhe përmban kopje të të gjitha varësive të nevojshme. Ka një shtresë për bashkëpunimin me depozitën klasike NPM, e cila trajtohet si një arkiv që është i disponueshëm vetëm në mënyrë të lexueshme. Po ashtu, mund të instalohen paketa nga NPM, duke përdorur ambientet e zhvilluar lokalisht nga Entropic.
Për menaxhim ofrohet një mjet komandash që thjeshton dislokimet e depozitave në rrjetin tuaj lokal. Entropic ofron dhe një sistem ruajtjeje, që minimizon shumën e të dhënave të shkarkuara përmes rrjetit. Entropic paraqitet si një sistem universal, i cili mund të përdoret për të krijuar depozita për paketa në çdo gjuhë programimi, por megjithatë, Entropic zhvillohet me një fokus në JavaScript dhe përshtatet më së miri për projekte të kësaj gjuhe.

Burimi: opennet.ru
