原文:Announcing VoidZero - Next Generation Toolchain for JavaScript | VoidZero
原文:
下文中【我】代表【尤雨溪】
TL;DR: 我创立了 VoidZero Inc.,这是一家致力于为 JavaScript 生态系统构建开源、高性能和统一开发工具链的公司。我们已筹集了 460 万美元的种子资金,由Accel领投。
15 年前,当我开始使用 JavaScript 开发应用程序时,它主要是一种基于浏览器的脚本语言。如今,它已发展成为世界上使用最广泛的语言,为从 Web 和移动应用程序到游戏开发甚至物联网等所有领域提供支持。
多年来,许多优秀的工具应运而生,以应对 JavaScript 应用程序日益增长的规模和复杂性。然而,生态系统始终是碎片化的:每个应用程序都依赖于无数的第三方依赖项,而配置它们以使其协同工作仍然是开发周期中最艰巨的任务之一。
作为最广泛使用的前端框架之一的作者,我投入了大量精力研究 JavaScript 工具堆栈的每一层,组装数百个依赖项,并在其之上设计复杂的抽象。我们的目标始终是为最终用户提供统一、开箱即用的开发体验。这些努力最终促成了Vite在 2020 年的诞生。
四年过去了,Vite 已经成为了最受欢迎的 Web 开发构建工具之一,每周下载量超过 1500 万次,生态系统十分庞大。除了成为使用React和Vue构建的单页应用程序的首选之外,Vite 还为Remix、Nuxt、Astro、SvelteKit、SolidStart、Qwik、Redwood等元框架提供支持。它显然已经将自己定位为下一代 Web 框架的共享基础架构层。
社区对 Vite 的信任让我对它的未来进行了深刻的思考。虽然 Vite 极大地改善了高级开发人员的体验,但在内部,它仍然依赖于各种依赖项,并使用抽象和变通方法来消除不一致之处。在性能方面,它仍然受到跨不同工具的重复解析和序列化成本的瓶颈,并且由于功能限制和可定制性有限,它无法充分利用esbuild等本机工具。
我们开始设计一个新的打包器Rolldown,专门针对 Vite 的需求。但随着我深入到打包器下面的各个层,我意识到 Vite 面临的挑战反映了整个 JavaScript 生态系统的现状:碎片化、不兼容和低效。要从根本上改变这种情况,需要一个统一的工具链。
想象一下这样的工具链:
- 统一 :对所有任务(解析、转换、检查、格式化、捆绑、压缩、测试)使用相同的 AST、解析器和模块互操作,消除不一致性并减少冗余解析成本。
- 高性能 :使用编译为本机语言编写,从头开始设计以提高速度,具有最大并行性和低开销 JS 插件支持。性能预算解锁了更多雄心勃勃的功能,不仅可以改善开发人员的体验,还可以改善最终用户体验。
- 可组合 :工具链的每个组件都可以独立使用,为高级定制提供构建模块。
- 运行时无关 :不依赖于任何特定的 JavaScript 运行时——在所有环境中提供相同的开发人员体验。
这样的工具链不仅会增强 Vite,还会推动整个 JavaScript 生态系统的重大改进。这是一个雄心勃勃的愿景,实现它需要一支全职、敬业的团队——在我过去项目的独立可持续发展模式下,这是不可能的。这就是 VoidZero 成立的原因。
我很高兴地宣布,我们已经筹集了 460 万美元的种子资金来实现这一愿景。我们的种子轮融资由Accel领投,其他参投者包括Amplify Partners、Preston-Werner Ventures、BGZ、Eric Simons (StackBlitz)、Paul Copplestone (Supabase)、David Cramer (Sentry)、Matt Biilmann 和 Christian Bach (Netlify)、Dafeng Guo (Strikingly)、Sebastien Chopin (NuxtLabs)、Johannes Schickling (Prisma) 和 Zeno Rocha (Resend)。
迄今进展
在过去的一年里,我们建立了一支在 JavaScript 工具方面拥有深厚专业知识的团队,其中包括Vite、Vitest、Oxc等广泛采用的开源项目的创建者和核心贡献者,以及Rspack的前核心贡献者。
我们一直在努力开发我们设想的工具链的基础元素。除了对 Vite 的持续改进之外,我们还提供了:
- 速度最快、最符合规范的 JavaScript 解析器 ( oxc-parser ),比 SWC 快 3 倍 -基准
- 最快的 Node.js 兼容解析器 ( oxc-resolver ),比基准
enhanced-resolve
快28 倍 - 最快的 TypeScript / JSX 转换器 ( oxc-transform ),比 SWC 快 4 倍 -基准
- 最快的 linter ( oxlint ),比 ESLint 快 50-100 倍 -基准
- 功能最齐全的 Web 应用程序测试运行器 ( Vitest )
- 最快的打包器 ( Rolldown ),基于 Oxc 构建。比 esbuild 和所有其他 Rust 打包器都快 -基准(目前处于 alpha 阶段)
虽然还处于早期阶段,但我们的开源项目已经被一些世界领先的工程团队使用,其中包括 OpenAI(ChatGPT 网络客户端)、谷歌、苹果、微软、Visa、Shopify、Cloudflare、Atlassian、Reddit、HuggingFace、Linear 等。
下一步
我们未来几个月的主要目标是稳定 Rolldown,使其成为 Vite 在开发和生产中的统一打包工具。我们已经取得了很大进展,并计划在今年晚些时候发布由 Rolldown 提供支持的 Vite 的 alpha 版本。
2025 年,我们将继续完成 Oxc 的其他计划功能(最小化、格式化),并逐步将整个 Vite 生态系统迁移到 Rolldown 和 Oxc 上。我们将与生态系统合作伙伴和利益相关者密切合作,确保最终用户的平稳过渡。
我们开源的所有内容都将保持开源状态。除了我们的开源项目之外,我们还将提供专为满足企业环境的规模和安全要求而设计的端到端 JavaScript 工具解决方案。
取得联系!
在 X 上关注我们,了解我们的进展。如果您对这些工具有大规模需求,请联系我们!如果您有兴趣为我们的项目做出贡献或构建,请加入我们的 Discord 服务器(Vite、Vitest、Oxc、Rolldown)。最后,别忘了本周收听ViteConf,我们将在那里分享有关我们的进展和未来计划的更多详细信息。
常见问题解答
- **这些开源项目和VoidZero是什么关系?**Vite 和 Vitest 的团队治理与以前保持不变。两个核心团队的成员均受雇于多个不同的组织(VoidZero、StackBlitz、NuxtLabs、Astro)。VoidZero Inc. 雇用/赞助了 Vite 和 Vitest 的多名核心贡献者。VoidZero Inc. 拥有版权、资助开发并控制 Oxc 和 Rolldown 的方向。
- **那么 Vue 怎么样?**VoidZero 的业务与 Vue 完全独立。Vue 将继续作为一个独立项目,但将获得 VoidZero 开发的新工具的一流支持。
- **为什么是 Oxc 而不是 SWC?**我们团队的许多成员过去都为 SWC 做出了不平凡的贡献。除了原始性能优势之外,Oxc 还与 SWC 有一些根本的设计差异,这使其成为我们正在构建的端到端工具链的更好基础。我们将在未来的博客文章中分享更多关于此主题的技术见解。敬请期待!
- **为什么选择 Rolldown 而不是 esbuild/Rollup?**我们需要一个速度极快、非常适合应用程序打包并且与 Vite 插件生态系统完全兼容的打包器。Rolldown文档 对此进行了详细讨论。在 Oxc 之上构建 Rolldown 还可以在打包阶段并行执行更多与 AST 相关的任务,例如使用 发出和打包 dts
isolatedDeclarations: true
。 - **为什么这与以前创建统一 JS 工具链的尝试会有所不同?**统一工具链的最大挑战是从零到一的问题:它需要达到临界规模才能被大规模采用,以证明持续发展的合理性,但在真正实现愿景之前,跨越鸿沟却非常困难。VoidZero 没有这个 问题,因为 Vite 已经是 JavaScript 生态系统中增长最快的工具链。