吐槽一下 bun

1 天前
 cj323

bun v1 有一段时间了,以为可以用了。在一个小的项目里试了一下,结果发现哪怕小项目还是基本用不了。

  1. 稳定性差,经常莫名 segfault/memory leak 。贴到 github 发现往往都是新版本迭代时没测试好,侧面说明其稳定性堪忧。
  2. 兼容性差,一到 linux 环境就各种出问题。我用服务器用的 ubuntu 24 ,经常崩溃或者报错。docker 用官方的 image 也是一样。现在部署时不抱太大希望了已经。
  3. npm 包兼容性差,很多重要的包要么兼容得不好,要么说明了不会兼容。这里比想象中的多。
  4. api 变动大,比如之前用过 bun serve 做 http server ,里面有个 fetch 写法,里面可以自己处理路由,后来 1.2 出了自带路由,结果不 backward compatible ,用就得自己重构。。。

一些可以称赞的地方

  1. 文档挺好,简单明了
  2. api 方便实用,比如 Bun.password ,Bun.sql ,等等,相比用 node 省了很多三方库。(前提是能稳定)
  3. 有前端的话,自带 bundler ,不用配 vite 什么的。(前提还是得稳定,这个功能在 linux 环境极其不稳定,基本用不了)
  4. bun add/install 快一点

总结就是,设计得挺好,有想法。但是实际做得太糙,哪怕小项目都不敢用。最开始舒服了一下,现在还得老老实实改回 node 。

3091 次点击
所在节点    Node.js
31 条回复
FishBear
1 天前
速度确实挺快,内存会泄露,实现不稳定,有 bug
确实太粗糙了,每次都修一堆 bug
enchilada2020
1 天前
玩具而已 拿什么跟 Node 打 人家 Deno 都多少年了也没成气候
zsj1029
1 天前
1.1x 开始用,配合 express ,写一些 api ,然后 build 单文件程序,目前跑的还算稳定,内存占用稍高,还可以接受
zsj1029
1 天前
本来就开源的,多一些宽容,遇到 bug ,去 github 提,目前来说吊打 deno ,对新手比较友好,选择适合自己的,不要习惯伸手党
Bronya
1 天前
直接支持 TypeScript 这一点对我来说非常方便。
leil
1 天前
好奇你都用了哪些包,我用着 bun 非常好用并且非常稳定,生产也是用 bun ,有另一台垃圾服务器去做 https 的 uptime 统计,可用性都是 99.9%,失败了的都是网络掉包了的,服务器那边没任何问题,也是小项目。
还有尽量不要用 bun 自带的 http server 等组件,尤其你都发现不稳的情况下,比如用 honojs ,跨运行时的,一旦 bun 真的满足不了你需求了,你可以无缝切换到 node ,不然到时候移植会让你崩溃。
Binwalker
1 天前
不如 deno 稳定成熟,这点性能差距其实不太重要
Nyeshuai
1 天前
看着支持贼多, 以为真能开箱即用替换少装一些包, 实际体验下还是太乐观了.

启动 html server, 大概率有脚本报错, 明明就是常规的 umd. live-server 没问题的.
monorepo, 不支持别名 command, 只能显式 filter 用, 一下子就感觉是个残废, 还得是 pnpm.
打包 ts, 只支持 tsconfig, 没有额外的 dts 配置, 还得是 tsup.

就自带的 pg 和 drizzle 感觉结合的还可以.
leil
1 天前
@Binwalker 我用 bun 不是为了性能,而是整个过程都很丝滑,创始人挺肝的,做的非常好,作者说的和 npm 兼容得不好的包我目前也还未遇到
bjfane
1 天前
我也是相对都是比较新的第三方包 整体 vue 栈的,还好,暂时只有一个玩具是 bun server 的,看起来也还行。
hronro
1 天前
你用过 Bun 的底层语言 Zig ,你就知道现在用 Zig 写的项目都是玩具。不是说这语言本身不行,而是这语言本身离正式发布都还有个 4 、5 年时间,现在每个版本之间 breaking change 无数,现在用这语言来写正式项目本身就很搞笑。
Gilfoyle26
1 天前
Bun 需要具有 AVX2 硬件支持的机器。Elysia 的官方文档说的,但是我不敢用了。
ysc3839
1 天前
个人不看好 Bun 。
没记错的话 Bun 底层引擎用的是苹果 Safari 的 JavaScript Core 吧?
那苹果官方有支持 JavaScript Core 在别的系统上运行吗?如果有,那遇到问题会第一时间修复吗?
就算苹果有支持,Safari 本身不支持在其他系统上运行,那相对 V8 引擎也更难发现问题。
70k
1 天前
忘了谁给我吹的说这个玩意牛逼的很 之前有时间去看了下项目,有 4.5k 的 open issue ,7.5k close 就知道这玩意别想稳定了
skiy
1 天前
速度挺快的啊。我也是 ubuntu 。不过没用这么高级,就随便用用而已。
ndxxx
1 天前
自己小项目玩玩的话 bun 挺好的,做商业项目目前肯定只看 nodejs 啊。倒是 deno 不上不下的。
shiny
1 天前
爱因斯坦的小板凳,现在已经很不错了。线上用了很久了,感受还不错,没啥问题。
shiny
1 天前
不过它自带的一些库还是要慎用,bug 挺多;标准库问题不大,最多只是部分功能未实现。
nomagick
1 天前
Node.js ES Module loader, 麻痹写了多少年了,还是个半成品,一身的 bug ,自己内部的人推不动,外部的人也改不动。随便啥乱糟功能打个 preview 标签就敢 release, 一副大限将至行将就木的样子。

Bun 对比下来就很有生机活力
RogerL
1 天前
能说说具体哪些地方不稳定么?我之前简单用 Elysia 写过东西,感觉还行

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1131622

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX