CJ Silverio, care la sfârșitul anului trecut a părăsit funcția de director tehnic al companiei NPM Inc, un nou depozit de pachete , care se dezvoltă ca o alternativă distribuită la NPM, necontrolată de o anumită companie. Codul Entropic este scris în JavaScript și sub licența Apache 2.0. Proiectul este în dezvoltare de doar o lună și se află în stadiul de prototip inițial, dar deja susține operațiuni de bază, cum ar fi conectarea, publicarea și instalarea pachetelor.
Ca motiv pentru crearea Entropic, se menționează dependența totală a ecosistemului JavaScript/Node.js de compania NPM Inc, care controlează dezvoltarea managerului de pachete și întreținerea depozitului NPM. S-a creat o situație în care o companie orientată pe profit controlează unilateral un sistem de care depind milioane de dezvoltatori și aplicații pe JavaScript, și care gestionează miliarde de descărcări de pachete pe săptămână.
O recentă serie de concedieri, schimbări de conducere și flirtul NPM Inc cu investitorii au creat o senzație de incertitudine cu privire la soarta viitoare a NPM și la neîncrederea că compania va susține interesele comunității, mai degrabă decât pe cele ale investitorilor. În opinia lui Silverio, afacerii NPM Inc nu trebuie să-i acordăm încredere, deoarece comunitatea nu are mecanisme de a o trage la răspundere pentru acțiunile sale. Mai mult, orientarea spre profit împiedică realizarea unor oportunități esențiale din perspectiva comunității, dar care nu aduc bani și necesită resurse suplimentare, cum ar fi suportul pentru verificarea prin semnătură digitală.
Silverio se îndoiește, de asemenea, că NPM Inc este interesată de optimizarea interacțiunii cu backend-ul său, deoarece acest lucru ar duce la o scădere a fluxurilor de date, potențial interesante din perspectiva monetizării. La fiecare execuție a comenzii „” se trimite conținutul fișierului , care include multe informații interesante despre ceea ce face dezvoltatorul. Ca reacție, câțiva membri proeminenți ai comunității JavaScript/Node.js au început să dezvolte o alternativă, necontrolată de companii separate.
Sistemul Entropic utilizează principiul rețelei federative, în care dezvoltatorul poate desfășura un server cu un depozit de pachete utilizate pe propriile sale resurse și să-l conecteze la o rețea distribuită comună, unind diversele depozite private într-un întreg. Entropic presupune coexistenta mai multor depozite, interacțiunea cu care se face în cadrul unui flux de lucru obișnuit.
Toate pachetele sunt împărțite folosind spații de nume și includ informații despre gazda pe care este găzduit depozitul lor principal.
Spațiul de nume reprezintă de fapt numele proprietarului pachetului sau al grupului de mentenanță care are dreptul de a publica actualizări. În general, adresa pachetului arată ca «namespace@repohost.com/pkg-name».
Metadatele și informațiile despre dependențe sunt definite în formatul .
În cazul în care un pachet este găzduit într-un depozit local, legat de dependențe din alte depozite, aceste pachete sunt replicate în depozitul local. Astfel, depozitul local devine autosuficient și include copii ale tuturor dependențelor necesare. Există un strat pentru interacțiunea cu depozitul clasic NPM, care este tratat ca un accesibil numai în modul de citire arhivă. De asemenea, este posibil să instalați pachete din NPM, folosind medii desfășurate local de Entropic.
Pentru gestionare este disponibil un instrument de linie de comandă, care simplifică desfășurarea depozitelor în rețeaua locală. Entropic oferă un API și un sistem de stocare care minimizează volumul de date descărcate prin rețea. Entropic se prezintă ca un sistem universal, care poate fi aplicat pentru crearea de depozite pentru pachete în orice limbaj de programare, dar, cu toate acestea, Entropic este dezvoltat având în vedere JavaScript și se potrivește cel mai bine pentru proiecte în acest limbaj.

Sursa: opennet.ro
