Były dyrektor techniczny NPM rozwija rozproszony repozytorium pakietów Entropic

CJ Silverio, który na koniec zeszłego roku zrezygnował z pozycji dyrektora technicznego w firmie NPM Inc, przedstawiła nowe repozytorium pakietów Entropic, które rozwija się jako rozproszona alternatywa dla NPM, niekontrolowana przez żadną konkretną firmę. Kod Entropic jest napisany w JavaScript i rozpowszechniany nadzorowany na licencji Apache 2.0. Projekt istnieje zaledwie miesiąc i znajduje się na etapie początkowego prototypu, ale już obsługuje podstawowe operacje, takie jak podłączenie, publikacja i instalacja pakietów.

Jako powód stworzenia Entropic wymieniana jest całkowita zależność ekosystemu JavaScript/Node.js od firmy NPM Inc, która kontroluje rozwój menedżera pakietów i utrzymanie repozytorium NPM. Powstała sytuacja, w której zyskowna firma jednolicie kontroluje system, od którego zależą miliony programistów i aplikacji na JavaScript, oraz który obsługuje miliardy pobrań pakietów tygodniowo.

Ostatnia fala zwolnień pracowników, zmiana kierownictwa oraz flirt NPM Inc z inwestorami stworzyły poczucie niepewności co do przyszłości NPM i braku zaufania, że firma będzie bronić interesów społeczności, a nie inwestorów. Według Silverio, nie można ufać biznesowi NPM Inc, ponieważ społeczność nie ma narzędzi do pociągania go do odpowiedzialności za podejmowane działania. Co więcej, nastawienie na zysk utrudnia realizację podstawowych potrzeb społeczności, które nie przynoszą dochodu i wymagają dodatkowych zasobów, jak wsparcie weryfikacji za pomocą podpisu cyfrowego.

Silverio również wątpi, czy NPM Inc jest zainteresowane optymalizacją interakcji ze swoim backendem, ponieważ doprowadziłoby to do zmniejszenia strumieni danych, które potencjalnie są interesujące z perspektywy monetyzacji. Przy każdym uruchomieniu polecenia „npm audit” zewnętrznie udostępniane jest zawartość pliku package-lock, który zawiera wiele interesujących informacji na temat tego, czym zajmuje się programista. W odpowiedzi kilku czołowych przedstawicieli społeczności JavaScript/Node.js rozpoczęło rozwój alternatywy, niekontrolowanej przez konkretne firmy.

System Entropic wykorzystuje zasadę sieci federacyjnej, w której deweloper może na swoich zasobach uruchomić serwer z repozytorium używanych przez niego pakietów i podłączyć go do wspólnej rozproszonej sieci, łączącej w jedną całość rozdzielone prywatne repozytoria. Entropic zakłada współistnienie wielu repozytoriów, z którymi można współdziałać w ramach zwykłego procesu roboczego.

Wszystkie pakiety są podzielone przy użyciu przestrzeni nazw i zawierają informacje o hoście, na którym znajduje się ich pierwotne repozytorium.
Przestrzeń nazw z definicji reprezentuje nazwę właściciela pakietu lub grupy konserwatorów, którzy mają prawo do wydawania aktualizacji. W ogólnym przypadku adres pakietu wygląda jak „namespace@repohost.com/pkg-name”.
Metadane i informacje o zależnościach są określane w formacie TOML.

W przypadku umieszczania w lokalnym repozytorium pakietu powiązanego z zależnościami z innych repozytoriów, te pakiety są mirrorowane w lokalnym repozytorium. W ten sposób lokalne repozytorium staje się samowystarczalne i zawiera kopie wszystkich niezbędnych zależności. Istnieje warstwa do interakcji z klasycznym repozytorium NPM, które jest traktowane jako dostępne w trybie tylko do odczytu archiwum. Można także instalować pakiety z NPM, korzystając z lokalnie uruchomionych środowisk Entropic.

Dostępne jest narzędzie wiersza poleceń, które upraszcza wdrażanie repozytoriów w lokalnej sieci. Entropic oferuje zasadniczo nowe API oparte na plikach i system przechowywania, które minimalizują ilość danych przesyłanych przez sieć. Entropic przedstawiane jest jako uniwersalny system, który można stosować do tworzenia repozytoriów pakietów w różnych językach programowania, jednakże Entropic jest rozwijane z myślą o JavaScript i najlepiej nadaje się do projektów w tym języku.

Odtwarzaj wideo

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster