Колишній техдиректор NPM розвиває розподілений репозиторій пакетів Entropic

СіДжей Сільверіо (CJ Silverio), яка наприкінці минулого року залишила посаду технічного директора компанії NPM Inc, представила новий репозиторій пакетів Ентропічна, що розвивається як розподілена альтернатива NPM, не підконтрольна конкретній компанії. Код Entropic написаний на JavaScript та поширюється під ліцензією Apache 2.0 Проект розвивається лише місяць і знаходиться на стадії початкового прототипу, але вже підтримує базові операції, такі як підключення, публікація та встановлення пакетів.

Як причина створення Entropic називається повна залежність екосистеми JavaScript/Node.js від компанії NPM Inc, яка контролює розробку пакетного менеджера та підтримку репозиторію NPM. Склалася ситуація коли націлена на отримання прибутку компанія одноосібно контролює систему, від якої залежать мільйони розробників та додатків на JavaScript, і яка обробляє мільярди завантажень пакетів на тиждень.

Нещодавня низка звільнень співробітників, зміна керівництва та загравання NPM Inc з інвесторами створили відчуття невизначеності щодо подальшої долі NPM та недовіри у тому, що компанія відстоюватиме інтереси співтовариства, а не інвесторів. На думку Сільверіо, бізнесу NPM Inc не можна довіряти, оскільки у співтовариства немає важелів для притягнення його до відповідальності за дії. Більше того, орієнтація на отримання прибутку заважає реалізації первинних з точки зору спільноти, але не приносять грошей і потребує додаткових ресурсів, можливостей, таких як підтримка верифікації цифрового підпису.

Сільверіо також сумнівається, що NPM Inc зацікавлена ​​в оптимізації взаємодії зі своїм бекендом, оскільки це призведе до зниження потоків даних, потенційно цікавих з точки зору монетизації. При кожному запуску команди «npm аудит» у поза віддається вміст файлу package-lock, Що включає багато цікавих відомостей про те, чим займається розробник. Як реакцію кілька відомих учасників спільноти JavaScript/Node.js розпочали розробку альтернативи, не підконтрольної окремим компаніям.

Система Entropic використовує принцип федеративної мережі, в якій розробник на своїх потужностях може розгорнути сервер з репозиторієм застосовуваних ним пакетів і підключити його до спільної розподіленої мережі, що об'єднує в єдине ціле розрізнені приватні репозиторії. Entropic має на увазі співіснування багатьох репозиторіїв, взаємодія з якими здійснюється в рамках звичайного робочого процесу.

Усі пакети поділяються з використанням просторів імен та включають інформацію про хост, на якому розміщується їх первинний репозиторій.
Простір імен по суті є ім'ям власника пакета або групи мейнтейнерів, які мають право на випуск оновлень. У загальному вигляді адреса пакета виглядає як «[захищено електронною поштою]/pkg-name».
Меатадані та відомості про залежність визначаються у форматі TOML.

У разі розміщення в локальному репозиторії пакета, пов'язаного залежностями інших репозиторіїв, дані пакети дзеркалуються в локальному репозиторії. Таким чином, локальний репозиторій стає самодостатнім і включає копії всіх необхідних залежностей. Є прошарок взаємодії з класичним репозиторієм NPM, який обробляється як доступний у режимі лише читання архів. У тому числі можна встановлювати пакети NPM, використовуючи локально розгорнуті оточення Entropic.

Для управління надається інструментарій командної стоки, що спрощує розгортання репозиторіїв у своїй локальній мережі. Entropic пропонує принципово нові файлово-орієнтований API і систему зберігання, які мінімізують обсяг даних, що завантажуються по мережі. Entropic подається як універсальна система, яку можна застосовувати для створення репозиторіїв для пакетів будь-якими мовами програмування, але, проте, Entropic розробляється з огляду на JavaScript і найкраще підходить для проектів цією мовою.

Джерело: opennet.ru

Додати коментар або відгук