全面进击的JavaScript运行时:Bun 1.2重磅发布,剑指Node.js生态

360影视 2025-01-23 18:56 2

摘要:JavaScript 运行时新秀 Bun 发布 1.2 版本,这是自去年 4 月发布 1.1 以来最重要的一次更新。

OSCHINA

JavaScript 运行时新秀 Bun 发布 1.2 版本,这是自去年 4 月发布 1.1 以来最重要的一次更新。

此次更新不仅大幅提升了与 Node.js 的兼容性,还为开发者带来了内置的数据库支持和云服务集成能力,进一步强化了其“全能工具包”的定位。

Node.js 兼容性获得突破性进展

在此次更新中,最引人注目的是 Bun 在 Node.js 兼容性方面取得的突破性进展。

Bun 团队改变了此前被动修复问题的策略,转而主动运行 Node.js 的测试套件来提升兼容性。

这一改变使得包括 http、crypto、dgram 等多个核心模块的测试通过率超过 90%。特别值得一提的是,Express —— 这个广受欢迎的 Web 框架在 Bun 中的性能提升了 3 倍,这无疑会吸引更多开发者尝试将项目迁移到 Bun 上。

云原生时代的标配:内置数据库与对象存储支持

此次更新的另一大亮点是为开发者带来了内置的 PostgreSQL 客户端和 S3 对象存储支持。

这意味着开发者无需安装额外的依赖包,就能直接与这些关键的云服务进行交互。尤其是 Bun 的 S3 客户端,其性能测试显示比使用传统 AWS SDK 的 Node.js 应用快 5 倍。这一改进将显著降低云原生应用的开发门槛。

包管理器也要与时俱进

作为一个全能型工具包,Bun 的包管理功能也获得了重要升级。最显著的变化是将默认的二进制锁文件(bun.lockb)改为文本格式的 bun.lock。

这一改变虽然看似简单,但解决了代码审查、版本控制和冲突解决等实际问题。更值得注意的是,尽管切换到了文本格式,新版本的 bun install 性能反而提升了 30%,这体现了 Bun 团队在性能优化方面的执着。

测试运行器更进一步

Bun 的内置测试运行器在此次更新中也得到加强,新增了 JUnit 和 LCOV 报告支持,这使得它更容易集成到现有的 CI/CD 流程中。此外,新增的内联快照测试等特性,也让测试体验更接近主流测试框架如 Jest。

性能持续领先

作为以性能著称的 JavaScript 运行时,Bun 1.2 在多个方面都实现了显著的性能提升。从 HTTP/2 服务器到文件系统操作,从 JSON 解析到控制台输出,几乎每个常用操作都变得更快。

特别是在 Windows 平台上,JavaScript 执行性能获得了全面提升,这表明 Bun 正在努力填补其在 Windows 支持方面的短板。

展望未来

通过这次更新,Bun 展示了其在全栈开发工具链中的野心。从更完善的 Node.js 兼容性到云服务的原生支持,从更快的包管理到更强大的测试工具,Bun 正在将自己打造成一个真正的全能型开发工具包。特别是在云原生开发方面的创新,显示出 Bun 团队对未来开发趋势的敏锐把握。

然而,挑战依然存在。尽管 Node.js 兼容性有了显著提升,但距离完全兼容仍有距离。同时,如何在保持高性能的同时确保稳定性,也将是 Bun 团队需要持续面对的挑战。

总的来说,Bun 1.2 的发布展示了这个项目的快速发展势头,也证明了 JavaScript 生态系统仍有巨大的创新空间。

对于开发者来说,现在可能是一个合适的时机来认真评估 Bun 是否适合自己的项目需求。

毕竟,在性能、开发体验和云原生支持等方面,Bun 已经展现出了独特的优势。

相关来源

↓分享、在看与点赞~Orz

来源:11不吃香菜a

相关推荐