The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Бывший техдиректор NPM развивает распределённый репозиторий пакетов Entropic

07.06.2019 23:00

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

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

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

Сильверио также сомневается, что NPM Inc заинтересована в оптимизации взаимодействия со своим бэкендом, так как это приведёт к снижению потоков данных, потенциально интересных с точки зрения монетизации. При каждом запуске команды "npm audit" во вне отдаётся содержимое файла package-lock, включающего много интересных сведений о том, чем занимается разработчик. В качестве реакции несколько видных участников сообщества JavaScript/Node.js начали разработку альтернативы, не подконтрольной отдельным компаниям.

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

Все пакеты разделяются с использованием пространств имён и включают информацию о хосте, на котором размещается их первичный репозиторий. Пространство имён по сути представляет собой имя владельца пакета или группы мэйнтейнеров, имеющих право на выпуск обновлений. В общем виде адрес пакета выглядит как "[email protected]/pkg-name". Метаданные и сведения о зависимостях определяются в формате TOML.

В случае размещения в локальном репозитории пакета, связанного зависимостями из других репозиториев, данные пакеты зеркалируются в локальном репозитории. Таким образом локальный репозиторий становится самодостаточным и включает копии всех необходимых зависимостей. Имеется прослойка для взаимодействия с классическим репозиторием NPM, который обрабатывается как доступный в режиме только для чтения архив. В том числе можно устанавливать пакеты из NPM, используя локально развёрнутые окружения Entropic.

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



  1. Главная ссылка к новости (https://www.theregister.co.uk/...)
  2. OpenNews: В популярный NPM-модуль внедрено вредоносное ПО, копирующее параметры аутентификации
  3. OpenNews: Выявлена попытка включения бэкдора в популярный NPM-пакет mailparser
  4. OpenNews: Выпуск серверной JavaScript-платформы Node.js 10 и пакетного менеджера NPM 6
  5. OpenNews: Критическая проблема в NPM 5.7, приводящая к смене прав доступа на системные каталоги
  6. OpenNews: Уязвимость в Apache CouchDB, позволяющая совершить атаку на реестр пакетов NPM
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/50830-npm
Ключевые слова: npm, entropic
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (28) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.14, Аноним (14), 02:58, 08/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Эм, npm имеет киллер фичу в том, что он хотя бы пытается искать пакеты с вирусней и дырами и хоть как-то на них реагировать, для того npm audit и создан. Если у каждого васи будет свой репозиторий, то подобные вещи перестанут работать.

    Вообще, основная проблема ноды перед другими языками в том, что, выражаясь лозунгами питона, она «не носит батарейки с собой» — её стандартная библиотека годится только для хелло ворлда, а на каждый чих приходится добавлять в зависимости сотни пакетов. Что стоит, вместо того, чтобы изобретать очередной нескучный пакетный менеджер, зайти на нпм, отсортировать пакеты по популярности и первые пару сотен из них, немного причесав, засунуть в стандартную библиотеку.

     
     
  • 2.17, Аноним (17), 03:30, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если у каждого васи будет свой репозиторий, то подобные вещи перестанут работать.

    Почему? Просто нужен отдельный открытый источник уязвимостей, в который ходит пакетный менеджер. К слову для npm audit можно свой источник проверок реализовать.

     
     
  • 3.18, Аноним (18), 04:31, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тем, что не будет одного централизованного источника и тебе придется каждый раз думать, стоит ли доверять конкретному ресурсу. Хотя и сейчас приходится думать. Но сейчас хотя бы понятно куда стучать в случае откровенного палева, а с исходниками хостящимися непонятно где, добится их удаления намного сложнее
     
  • 2.30, Аноним (30), 11:25, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >её стандартная библиотека годится только для хелло ворлда, а на каждый чих приходится добавлять в зависимости сотни пакетов

    Это точно.

    Вчера на горизонте замаячила задача накидать интерфейс для сетевой тулзы.

    Дай, думаю, поизучаю React.

    Выполнил npx create-react-app, сгенерил он мне реактовский HelloWorld. Начинаю в нём копаться, зашёл в директорию с пакетами зависимостей, а там их 1000 штук.

    1000 штук, Карл!

     
     
  • 3.36, й (?), 19:42, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    https://i.redd.it/tfugj4n3l6ez.png
     
  • 2.32, proninyaroslav (ok), 12:14, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Вообще, основная проблема ноды перед другими языками в том, что, выражаясь лозунгами питона, она «не носит батарейки с собой» — её стандартная библиотека годится только для хелло ворлда, а на каждый чих приходится добавлять в зависимости сотни пакетов

    Это проблема не ноды, а яваскрипта. Точнее полным отсутствием std в нём. Да и в целом это последствие повторного использования кода.

     
     
  • 3.35, Аноним (18), 15:40, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    JS — язык. Стандартная либа, это отдельная сущность. Те же самые C/C++ могут существовать без стандартных либ (ну, с C++ вообще без пространства std не обойтись, тот же std::initializer_list или туплы это часть синтаксиса, но по большей части без нее можно обойтись). Весь вопрос, кто будет разрабатывать эту стандартную либу — разработчик языка или комьюнити. Разрозненное комьюнити эту задачу выполняет плохо, достигая результатов в основном за счет естественного отбора в виде популярности либ. Лет через 20, возможно, станет получше, но, в любом случае, основные разработчики языка это сделали бы быстрее, лучше и надежнее.
     
  • 3.39, Серж (??), 18:09, 09/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это вообще не проблема, это атомарная архитектура, так задумано
     
  • 2.37, rshadow (ok), 00:09, 09/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > она «не носит батарейки с собой»

    Какая здесь может быть проблема? Есть отличный пакетный менеджер же. А теперь и не один.Основная проблема помойки была и будет: "как найти что-то стоящее на помойке". Да рейтинги помогают, но только в топе. А все специализированное приходится самому на вкус пробовать.

     

  • 1.1, Аноним (1), 00:11, 08/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Хорошее начинание
    Миру нужны качественные альтернативы помойке нмп
     
     
  • 2.3, Аноним (3), 00:34, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Можно entropic вместо ,ail ru arenta запихнуть в каждый экзшник и у нас на каждой винде будет свой сервак развернутый xD
     
  • 2.28, Зщз (?), 10:27, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Или миру нужно больше помоек
     
     
  • 3.40, Аноним (40), 16:46, 11/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Может просто добавить сообщество и фильтровать пакеты по каким-то критериям?
     
  • 2.29, Аноним (29), 11:13, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Название, как бы, намекает, что это будет ещё более хаотичная помойка.
     

  • 1.2, Аноним (2), 00:33, 08/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    так блэд. А в npm свои репы добавлять разве нельзя?
     
  • 1.4, Аноним (4), 00:37, 08/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А что с yarn-ом - та же фигня?
     
     
  • 2.15, Аноним (14), 03:01, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ярн работает с пакетами из того же npm.
     

  • 1.12, Аноним (-), 00:55, 08/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Так Microsoft уже спас от зависимости от NPM Inc, не?
     
  • 1.13, Аноним (13), 01:55, 08/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Жээсо проблемы как всегда поражают воображение.
     
     
  • 2.25, РСЦ (?), 09:18, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    при чём тут ЖЭС, гражданин? объяснитесь
     

  • 1.23, Аноним (23), 08:02, 08/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > во вне отдаётся содержимое файла package-lock, включающего много интересных сведений о том, чем занимается разработчик.

    И что ценного они надеются найти у рядового нодиста?

     
     
  • 2.26, допупапушкин (?), 09:23, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    тонны нефти, пати на хате, корованы под кроватью, путану настю, страпон, к несчастью, двойку по матчасти, ума палату и розовую халату
     
     
  • 3.27, Аноним (23), 10:26, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > розовую халату

    с перламутровыме поговицаме!

     
  • 2.34, Аноним (34), 13:55, 08/06/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Денег они там хотят найти. Любой разработчик для корпорастов лишь кормовая база. Капитализм, сэр.
     

  • 1.31, InuYasha (?), 11:50, 08/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >>Код Entropic написан на JavaScript и..

    ...и дальше уже и не важно.

     
     
  • 2.38, Wilem (?), 09:52, 09/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Они ничего кроме жаваскрипта не умеют с тех пор, как дропдаун менюшки в html научились разворачивать. Вот и приходится.
     

  • 1.33, Аноним (33), 12:53, 08/06/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Каждый час рождается новый js-фреймворк  
    Каждый день рождается новый пакетный менеджер для них
     
     
  • 2.41, crypt (ok), 01:18, 12/06/2019 [^] [^^] [^^^] [ответить]  
  • +/
    да нет, это было пять-десять лет назад актуально. а сейчас они начали решать проблемы, которые это породило.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру