Buz:一个采用现代 Zig 的 Bun 分支,支持亚秒级增量构建

Buz:一个采用现代 Zig 的 Bun 分支,支持亚秒级增量构建

Hacker News 摘要

原标题:Buz – A fork of Bun using modern Zig, with sub-1s incremental builds

Buz 项目概述

Buz 是一个基于知名 JavaScript 运行时 Bun 的分支项目。开发者 jazzzooo 在 Ziggit 论坛上展示了这一作品。该项目的核心目标是在保持与 Bun 兼容的同时,使用现代 Zig 语言对代码库进行重构和优化。目前项目仍处于早期开发阶段,暂时不建议用于生产环境。

技术特点与改进

• 极速增量构建:通过将整个构建图(包括 JavaScriptCore 的源代码)整合进 build.zig,Buz 实现了不到 1 秒的增量构建速度。这极大地缩短了开发循环,提高了调试效率。

• 现代 Zig 适配:项目已迁移至当前的 Zig 主线版本。为了支持增量重建,开发者对 Zig 编译器进行了微小的补丁处理。

• 清理冗余代码:作者从原有的 Bun 代码库中删除了超过 11,000 行完全废弃的死代码。他指出,Bun 的代码库在快速迭代中积累了严重的技术债,Buz 的目标是建立一个更简洁、更合理的代码架构。

• 修复与现代化:大量代码被重写以适配 Zig 标准库,并在过程中修复了无数潜伏的错误。项目还同步了 Rust 版 Bun 的最新测试用例,力求在功能和稳定性上跟进。

开发策略与 AI 的应用

作者对该项目的开发采取了比较特殊的策略:

• 大量使用 LLM:由于 Bun 的源代码量接近 60 万行且逻辑复杂,作者认为不应让开发者陷入这种混乱中。因此,他选择大量利用 AI 和 LLM 工具来辅助清理和重构代码。

• 暂时不接受人类贡献:在代码库达到作者认为的健康状态之前,他不接受由人类直接编写的代码贡献。他希望先通过 AI 辅助将各子系统重写为地道的 Zig 代码。

• 长期愿景:作者希望在几个月内,将项目打造为一个整洁、易于维护、且能完美替代 Rust 版 Bun 1.4.0 的工具。最终目标是让代码库变得足够友好,不再依赖 AI 即可进行日常维护。

社区反馈与观点

论坛中的其他开发者对该项目表达了关注,同时也提出了一些深入的见解:

• 胶水层论点:有开发者认为,Bun 的核心竞争力其实在于它整合的一系列 C 和 C++ 项目,如 JavaScriptCore、uWebSockets、brotli 等。Zig 或 Rust 在其中主要充当胶水代码的作用。

• 关注重点建议:社区建议 Buz 如果想取得成功,除了改进代码质量外,更应关注系统的稳定性和对 V8 以及 N-API 的兼容性。既然 Bun 的性能已经非常出色,解决兼容性和崩溃问题将是赢得用户的关键。


原文:https://ziggit.dev/t/buz-a-drop-in-replacement-for-bun-using-modern-zig-with-sub-1s-incremental-builds/16891

评论:https://news.ycombinator.com/item?id=49033099

Report Page