写点什么

Bun 迎来重要更新:新增 Chrome 调试、S3 API,引发架构争议

  • 2025-03-05
    北京
  • 本文字数:1367 字

    阅读完需:约 4 分钟

大小:688.02K时长:03:54
Bun 迎来重要更新:新增 Chrome 调试、S3 API,引发架构争议

Bun 的 1.1.3 版本已经发布,它是一个用于 JavaScript 和 TypeScript 应用程序的工具包和打包器。虽然它有一些新的功能,包括用于 S3 存储的 API、对 Chrome 调试的支持、大量的问题修复,以及 Bun 1.2(计划于下周发布)中承诺的 PostgreSQL 客户端,但该项目目前因包含特定于供应商的 API 和太多可能存在于库中而不是核心中的功能而受到批评。

 

S3(Simple Storage Service,简单存储服务)是一种 AWS 服务,其 API(或其部分 API)已被谷歌云(Google Cloud)、Digital Ocean、Cloudflare 等公司采用。初始化该 API 的方法有两种,Bun.s3 从环境变量中读取凭据,而 Bun.S3Client 使用显式凭据。也可以生成一个带有过期的预签名 URL,这样就可以在没有凭据的情况下工作了。

 

当 S3 API 首次出现时,一些开发人员并不满意,认为“在运行时中使用特定于供应商的 API 不是一个好主意”。AWS 可能会更改 API,从而会破坏 Bun。Bun 的作者 Jared Sumner 在社交媒体上回应道:“S3 已经超过 15 岁了。有足够多的旧 S3 客户端和与兼容 S3 的 API,破坏 API 的更改实际上是不可能发布的。”

 

另一个新特性是将 html 和 CSS(级联样式表)文件以及 JavaScript 捆绑在了一起,尽管目前需要使用标记–experimental-html 和–experimental-css 来标记,直到 1.2 版本发布。输出将只有一个 JavaScript 文件和一个 CSS 文件,包括摇树(删除不必要的代码)和 JavaScript 和 TypeScript 的优化。图像和其他资源也会被复制到输出到目录中,引用也将被更新。其理念是构建静态站点和 Web 应用程序。

 


在 Chrome 开发工具中调试 Bun 内存使用情况

 

Bun 是用 Zig 语言编写的,并使用 WebKit 的JavaScriptCore作为其 JavaScript 引擎。据 Bun 的开发人员称,与谷歌 Chrome 和开源 Chromium 项目所使用的更广泛的 V8 引擎相比,这减少了启动时间和内存使用量。但这也确实增加了一些麻烦。这个版本缓解了其中的一个例子,即 Bun 现在可以输出 V8 堆快照,这样 Chrome DevTools 就可以用来调试内存使用情况了。

 

Bun 已经为本地数据库内置了一个 Sqlite 驱动程序。很快将有一个 PostgreSQL 客户端与之搭配,Sumner将其描述为“我的一个业余项目”。新客户端将包含在 Bun 1.2 中,或在当前的金丝雀(预览)版本中试用。

 

在该版本中还修复了大量的问题,包括 WebSocket 客户端中的内存泄漏,以及使用大量 if 语句时出现的堆栈溢出错误。Sumner 评论道:“即使 if 语句没有嵌套,if 语句的语句解析步骤也始终是递归的。这种递归占用了太多的堆栈空间。现在它不再是递归的了。”。

 

Node.js 的兼容性也得到了改善,现在 100%的 node:path 测试都通过了,98.08%的 node:zlib 测试(包括对 node:zlib 模块中内存泄漏的修复)也通过了。Bun 仍然不能完全替代 Node.js;Sumner 表示,这占据了团队大部分的时间,尽管“谈论这件事不是那么光彩。”

 

Bun 1.0 于 16 个月前的 2023 年 9 月发布,开发仍在快速进行。Bun 会定期推出新功能,而 Node.js(本月早些时候Node.js 发布了 23.6 版本)的发展速度则更为平稳,这可能与它的成熟度相符。

 

尽管如此,对于一些新特性,包括 PostgreSQL 客户端以及 S3 API,是否更适合放在库中而不是放在 Bun 本身内,仍存在争议。将这些功能作为 Bun 的一部分可能会造成长期的臃肿和维护负担——尽管如此,一些人“喜欢其内置电池的态度”。

 

原文链接:

https://devclass.com/2025/01/17/bun-update-brings-chrome-debugging-and-controversial-s3-api-postgresql-client-coming-soon/

2025-03-05 17:473818

评论

发布
暂无评论

程序员如何利用AI加持

Bruce Talk

AI 敏捷开发

HDC 2023 | HarmonyOS应用联运服务,帮助开发者实现全链路经营提效

极客天地

9. 数据类型 - 列表详解

茶桁

Python

图数据库使用及业务场景

小小怪下士

Java MySQL 数据库

父子线程共用线程池

soap said

【腾讯云Cloud Studio实战训练营】React 快速构建点餐页面

热爱编程的小白白

纵览 PoseiSwap 经济体系,如何从宏大的叙事中持续捕获价值?

西柚子

MiniRBT中文小型预训练模型:结合了全词掩码技术和两段式知识蒸馏技术,加快推理速度

汀丶人工智能

人工智能 自然语言处理 nlp 预训练模型 知识蒸馏

VLE基于预训练文本和图像编码器的图像-文本多模态理解模型:支持视觉问答、图文匹配、图片分类、常识推理等

汀丶人工智能

人工智能 自然语言处理 多模态大模型 视觉问答 图文匹配

在 Go 语言单元测试中如何解决 Redis 存储依赖问题

江湖十年

后端 单元测试 Go 语言 redis'

【我和openGauss的故事】 openGauss 5.0.0 事务相关语法

daydayup

[腾讯云 Cloud studio 实战训练营] 制作Scrapy Demo爬取起点网月票榜小说数据

ベ布小禅

Java 文字转图片输出,Java 输出透明背景图片,Java文字转图片防爬虫

java易二三

Java 程序员 爬虫 计算机 电脑

向极致体验奔跑,不妥协的星闪与中国科技的少年气

脑极体

通信

C与C++之间的相互调用及函数区别

芯动大师

接口测试必备技能-常见接口协议解析

霍格沃兹测试开发学社

盘点一对一直播源码的那些小功能

山东布谷网络科技

源码 社交APP 一对一直播

华为发布数字资产继承功能

HarmonyOS SDK

华为 HarmonyOS HMS Core

Zebec 创始人 Sam 对话社区,“Zebec 生态发展”主题 AMA 回顾总结

股市老人

纵览 PoseiSwap 经济体系,如何从宏大的叙事中持续捕获价值?

BlockChain先知

纵览 PoseiSwap 经济体系,如何从宏大的叙事中持续捕获价值?

小哈区块

再获殊荣!AlphaSights荣获猎聘“2022年度非凡雇主”称号

科技热闻

纵览 PoseiSwap 经济体系,如何从宏大的叙事中持续捕获价值?

股市老人

【我和openGauss的故事】带有out参数的存储过程及自定义函数的重载测试

daydayup

【我和openGauss的故事】使用Ora2Pg迁移oracle数据到openGauss

daydayup

简单好用的ElasticSearch可视化工具:es-client和Head

javalover123

搜索引擎 elasticsearch ELK ES Elastic Search

Gartner 首发中国数据分析与人工智能技术成熟度曲线,TDengine 入选

爱倒腾的程序员

行业信创-太极信创研习院第36期ITAIP信创精华班央企专场培训在京成功举办

电子信息发烧客

Bun 迎来重要更新:新增 Chrome 调试、S3 API,引发架构争议_架构/框架_Tim Anderson_InfoQ精选文章