前 NPM CTO 開發分散式套件儲存庫 Entropic

去年年底辭去 NPM Inc 首席技術長職務的 CJ Silverio, 呈現 新的套件儲存庫 ,它正在開發作為 NPM 的分散式替代方案,不受特定公司控制。 Entropic 的程式碼是用 JavaScript 寫的 分發者 在 Apache 2.0 下獲得許可。 該專案僅開發了一個月,處於最初的原型階段,但已經支援連接、發布和安裝套件等基本操作。

創建 Entropic 的原因是 JavaScript/Node.js 生態系統完全依賴 NPM Inc,該公司控制著套件管理器的開發和 NPM 儲存庫的維護。 這是一家以營利為目的的公司完全控制數百萬 JavaScript 開發人員和應用程式所依賴的系統的地方,該系統每週處理數十億個套件下載。

最近一系列的員工裁員、管理層變動以及 NPM Inc 與投資者的調情,讓人們對 NPM 的未來產生了不確定性,也讓人們對該公司將維護社區利益而不是投資者利益缺乏信任。 Silverio 表示,NPM Inc 的業務不值得信任,因為社區沒有足夠的影響力來要求對其行為負責。 此外,對盈利的關注阻礙了一些機會的實現,這些機會從社區的角度來看是主要的,但不會帶來金錢並需要額外的資源,例如對數位簽名驗證的支持。

Silverio 也懷疑 NPM Inc 是否有興趣優化與其後端的交互,因為這將導致資料流減少,從貨幣化的角度來看,這可能是有趣的。 每次運行命令“新專案管理審計» 文件的內容被傳送到外部 包鎖,其中包含許多有關開發人員所做工作的有趣資訊。 作為回應,JavaScript/Node.js 社群的幾位知名成員開始開發一種不受個別公司控制的替代方案。

Entropic 系統使用聯合網絡的原理,其中開發人員可以使用自己的資源部署帶有他使用的軟體包存儲庫的伺服器,並將其連接到一個公共分佈式網絡,該網絡將不同的私有存儲庫合併為一個整體。 Entropic 涉及許多儲存庫的共存,作為正常工作流程的一部分與它們互動。

所有套件都使用命名空間分隔,並包含有關託管其主儲存庫的主機的資訊。
命名空間本質上是有權發布更新的套件擁有者或維護者群組的名稱。 一般來說,資料包位址看起來像“[電子郵件保護]/pkg-名稱」。
元資料和依賴資訊以以下格式定義 TOML.

如果將套件放置在透過其他儲存庫的依賴項連結的本機儲存庫中,則這些套件將鏡像到本機儲存庫中。 這使得本機儲存庫是獨立的,並包含所有必要依賴項的副本。 有一個層用於與經典 NPM 儲存庫交互,該存儲庫被視為只讀存檔。 您也可以使用本機部署的 Entropic 環境從 NPM 安裝軟體套件。

對於管理,提供了命令列工具來簡化本地網路上儲存庫的部署。 Entropic 提供全新的 以檔案為導向的API 以及最大限度減少透過網路下載的資料量的儲存系統。 Entropic 被譽為通用系統,可用於為任何程式語言的套件建立儲存庫,但 Entropic 仍然是根據 JavaScript 開發的,並且最適合該語言的專案。

來源: opennet.ru

添加評論