前 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 是否有兴趣优化与其后端的交互,因为这将导致数据流减少,从货币化的角度来看,这可能是有趣的。 每次运行命令“npm审计» 文件的内容被发送到外部 包裹锁,其中包含许多有关开发人员所做工作的有趣信息。 作为回应,JavaScript/Node.js 社区的几位知名成员开始开发一种不受个别公司控制的替代方案。

Entropic 系统使用联合网络的原理,其中开发人员可以使用自己的资源部署带有他使用的软件包存储库的服务器,并将其连接到一个公共分布式网络,该网络将不同的私有存储库合并为一个整体。 Entropic 涉及许多存储库的共存,作为正常工作流程的一部分与它们进行交互。

所有包都使用命名空间分隔,并包含有关托管其主存储库的主机的信息。
命名空间本质上是有权发布更新的包所有者或维护者组的名称。 一般来说,数据包地址看起来像“[电子邮件保护]/pkg-名称”。
元数据和依赖信息以以下格式定义 汤姆.

如果某个包放置在本地存储库中并且具有来自其他存储库的依赖项,则这些包将镜像到本地存储库中。 这使得本地存储库是独立的,并包含所有必要依赖项的副本。 有一个层用于与经典 NPM 存储库交互,该存储库被视为只读存档。 您还可以使用本地部署的 Entropic 环境从 NPM 安装软件包。

对于管理,提供了命令行工具来简化本地网络上存储库的部署。 Entropic 提供全新的 面向文件的API 以及最大限度减少通过网络下载的数据量的存储系统。 Entropic 被誉为一个通用系统,可用于为任何编程语言的包创建存储库,但 Entropic 仍然是根据 JavaScript 开发的,并且最适合该语言的项目。

来源: opennet.ru

添加评论