vlt 推出 1.0,提供可在 npm 工具链中通用的托管注册表

Darcy Clarke 正在把由 npm 资深人士构建的包管理器转变为一个旨在实现更快持续集成(CI)和更安全安装的商业注册表业务。

By · Published

Primary source: vlt

Why it matters

Clarke is using npm compatibility to lower switching costs while moving vlt from open-source tooling into paid infrastructure. The bet is that heavier CI and coding-agent use will make registry speed and package screening worth paying for. ([vlt.io](https://www.vlt.io/blog/1-0?ref=runtimewire))

A lone technician in a server room stands among racks, representing vlt and Darcy Clarke's npm-compatible hosted registries and package manager.

Darcy Clarke (@darcy), vlt 的创始人兼首席执行官,于一则 8月4日的公告 中发布了稳定的 vlt 1.0 包管理器,并将这家开发者工具制造商的托管 JavaScript 注册表普遍提供。该发布为 vlt 提供了一个完整的商业产品:开发者机器上的 npm 替代品,以及可以位于 npm、pnpm、Yarn、Bun 或 Deno 之后的私有注册表和镜像。 (vlt.io)

Clarke 在他试图重建的工具领域度过了大部分职业生涯。在 GitHub 于 2020 年收购 npm 之后,他曾负责 GitHub 的 npm CLI 和 GitHub CLI 工程团队。当他在 2024 年 3 月介绍 vlt 的创始团队 时,Clarke 将 JavaScript 打包描述为已经停滞的关键基础设施。 (vlt.io)

他召集了一支具有直接运营现有栈经验的团队。Isaac Z. Schlueter (@izs) 创建了 npm,运营过 npm Inc. 并曾领导 Node.js。Ruy Adorno (@ruyadorno),目前仍是 vlt 的资深软件工程师,曾在 GitHub 从事 npm CLI 工作,随后加入 Google。这一论点基于这样的历史:那些知道 JavaScript 打包何处出问题的人,正在构建客户端和其背后的基础设施。 (vlt.io)

围绕依赖图构建的包管理器

1.0 版本将 vlt 客户端 从漫长的候选版本周期推进为 vlt 所称的稳定、全功能包管理器。它处理常见的包生命周期,包括安装、脚本执行、更新、发布和弃用,而无需回退到 npm。 (vlt.io)

Clarke 和他的工程师将客户端构建为基于依赖图,而不是将项目的包列表视为平面的清单。开发者可以使用超过 60 个图选择器查询依赖关系,其中大约 30 个选择器被 vlt 描述为以安全为重点。这些选择器可以查找与恶意软件报告、CVE、无人维护的依赖、安装脚本、许可条件或特定注册表相关的包。主机级选择器还可以跨机器上的所有本地项目搜索依赖关系。 (vlt.io)

该图模型也控制安装行为。分阶段安装 将下载包与运行其生命周期脚本分离。vlt install 可以在不执行包提供代码的情况下填充 node_modules,而 vlt build 允许开发者选择随后运行哪些脚本。vlt 表示在该过程中会默认阻止已知的恶意软件。 (vlt)

这种分离解决了 JavaScript 包管理中的一个反复出现的弱点:安装通常会在开发者审查将要执行的内容之前,就让第三方脚本访问开发者机器或 CI 运行器。vlt 的方法将脚本执行作为一个独立决策,同时为需要传统 npm 行为的团队保留选项。 (vlt)

vlt 1.0 还支持依赖目录、基于图的覆盖以及 OIDC trusted publishing。后者允许 CI 系统在不存储长期注册表令牌的情况下进行发布,内置支持 GitHub Actions,并可配置支持 GitLab CI 和 CircleCI。 (vlt.io)

注册表将开源工具变成商业服务

对于 vlt 来说,托管注册表是此次发布中最具影响力的部分。Clarke 最初在 2024 年 11 月 5 日的一次发布中展示了包管理器和无服务器注册表。通用可用性为 vlt 提供了一项付费服务,可以捕获由开发者、CI 系统和编码代理产生的包流量。 (vlt.io)

兼容性是销售策略的核心。团队可以将现有的 npm、pnpm、Yarn、Bun 或 Deno 客户端指向 vlt 的注册表端点,而无需一次性替换所有包管理工作流。vlt 可以托管组织范围的私有包并镜像上游公共依赖,同时在包发布前验证清单。 (vlt.io)

vlt 的定价页面 从包含 2 GB 存储和传输的免费计划开始。按年计费,Pro 为每用户每月 8 美元,Premium 为 20 美元,Enterprise 为 79 美元,每个等级都提供更大的存储配额和支持功能。该模式为 Clarke 提供了一条从免费客户端采用到经常性注册表收入的直接路径。 (vlt.io)

Clarke 将时机与 AI 驱动的开发联系在一起,在这种情况下,代理会创建短暂环境并反复安装依赖。“在 agentic 规模下,注册表成为瓶颈,”他在发布公告中写道。vlt 表示包从靠近开发者和 CI 的边缘基础设施提供,并声称其自身的全新安装基准测试比 npm 快高达 38%。该数据来自 vlt 的测试,尚未经过独立审计。 (vlt.io)

安全论点同样激进

vlt 表示它消费公共恶意软件提要和咨询数据库,例如 OSV,在索引它们的同时阻止已知的坏包。截至 8 月 4 日,vlt 声称已标记超过 275,000 个包版本,其中超过 25% 的这些版本仍可从 npm 的公共注册表下载。那些分类和百分比均为公司报告数据。 (vlt.io)

包筛查仍然是一个对抗性的问题,而不是一把永久的盾牌。2026 年 1 月 26 日,安全公司 Koi 在一篇报道中 披露了影响 vlt 的 PackageGate 漏洞,该漏洞同时影响 npm、pnpm 和 Bun。报告称这些缺陷可能会绕过包管理器的安全保护。这一事件强化了客户端与注册表能够快速改变的价值,同时也表明没有哪个包管理器可以被描述为对供应链攻击免疫。 (Koi)

重新构建创始人曾经运营的基础设施

vlt 在 2024 年 3 月 20 日宣布了其风险融资。Accel 领投,Inovia CapitalAbstraction Capital 参与投资。支持者还包括 Vercel CEO Guillermo Rauch、Socket CEO Feross Aboukhadijeh、Sentry CEO David Cramer 和 Vue.js 创始人 Evan You。vlt 尚未公布本轮融资规模或估值。 (vlt.io)

1.0 这一里程碑开始了对 Clarke 论点的商业检验。兼容性降低了尝试 vlt 的成本,因为开发者可以保留熟悉的客户端,先更改注册表端点。同时掌握两层可以让 vlt 控制依赖关系是如何解析、检查、下载和执行的。

同样的范围也提高了负担。开发者必须将凭据、私有包和每次构建的关键部分信任给 vlt。Clarke 的优势在于一群创始人已经设计并运营过被广泛使用的 JavaScript 包基础设施。有了稳定的客户端和托管注册表一起可用,vlt 现在可以测试这些经验是否足以将包流量迁移到其控制的基础设施上。

Reader comments

Conversation for this story loads after sign-in.