5月22日,全球最流行的视频下载工具yt-dlp发布了一个重要公告:正式弃用对Bun JavaScript运行时的支持。理由很直接——Bun最近用Claude重写了整个项目,从Zig转向Rust,开发方式也转向了”vibe-coding”(AI辅助的直觉式编码)。
事件始末
yt-dlp依赖一个名为ejs的JavaScript运行时来执行提取器脚本。Bun是ejs支持的运行时之一,之前支持的最低版本是1.0.31。
这次变更做了两件事:
提高最低版本到1.2.11——因为低于1.2.0的版本在构建ejs时会忽略lockfile,这在近期npm供应链攻击频发的背景下是严重的安全隐患。1.2.0到1.2.11之间的版本则因为ejs测试套件无法运行而被排除。
设置最高版本上限到1.3.14——因为这是最后一个从原始Zig代码库构建的版本。之后的Bun版本是用Claude AI重写的Rust代码。
为什么yt-dlp团队这么做
公告原文非常直白:
“Bun最近用Claude重写成了Rust,其开发似乎已经转向完全vibe化。这令人担忧和失望,原因有很多,坦率地说,我们宁愿避免未来的麻烦。”
yt-dlp团队的逻辑很清楚:他们需要的是一个稳定、可预测的JavaScript运行时。一个正在用AI大规模重写的运行时,未来的行为可能无法用传统方式验证和预测。
Bun的”vibe-coding”争议
Bun的创始人Jarred Sumner一直是AI辅助开发的积极倡导者。今年早些时候,Bun团队宣布用Claude将整个代码库从Zig重写为Rust,这在开发者社区引发了巨大争议。
支持者认为这展示了AI辅助开发的威力,可以让项目更快迭代。反对者则担心:
1. AI生成的代码可能包含人类难以发现的微妙bug
2. 依赖AI重写意味着对代码行为的理解可能不如手写代码深入
3. “vibe-coding”本质上是不写测试、靠感觉调试,这对基础设施级别的项目是危险的
yt-dlp的决定可能会被其他项目效仿。当一个被广泛依赖的基础设施项目宣布”我们正在用AI重写”时,下游项目确实需要重新评估依赖风险。
对站长和开发者的影响
如果你用yt-dlp:如果你目前在使用Bun作为yt-dlp的JavaScript运行时,需要检查版本。1.2.11到1.3.14之间的版本暂时还可以用,但yt-dlp保留了完全弃用的权利。建议切换到Node.js或QuickJS。
如果你在维护开源项目:这件事可能会引发连锁反应。如果你的项目依赖Bun,现在是评估风险的好时机。
关于AI辅助开发的思考:AI写代码没问题,但”vibe-coding”作为一种开发哲学——不写测试、不验证、靠感觉——在安全敏感的基础设施项目中确实存在风险。yt-dlp的反应虽然保守,但合理。
如何应对
检查你是否在用Bun运行yt-dlp:
yt-dlp --version
# 如果输出中包含bun字样,说明在用Bun
切换到Node.js:
# macOS
brew install node
# Ubuntu/Debian
sudo apt install nodejs
# 然后重新安装yt-dlp
pip install --upgrade yt-dlp
或者使用QuickJS——yt-dlp团队更推荐这个更轻量的运行时。
本文参考来源:yt-dlp GitHub Issue #16766 – Bun support is now limited and deprecated
















暂无评论内容