Bun v1.2.9发布了,内置了Redis操作

大家好,我是农村程序员,独立开发者,行业观察员,前端之虎陈随易。

  • 关注公众号:陈随易,获取最新观察、思考和文章推送。
  • 个人网站 1️⃣:chensuiyi.me
  • 个人网站 2️⃣:me.yicode.tech

如果本文能给你提供启发或帮助,欢迎动动小手指,一键三连 (点赞评论转发),给我一些支持和鼓励,谢谢。


Bun 不愧是更新狂魔啊,盘点了一下,今年开年以来,从 v1.1.43 到今天的 v1.2.9,一共发布了 13个版本,也就是平均一个月发布 3 个版本,恐怖如斯。

继上次 Bun 内置 S3 协议,也就是静态文件存储 (阿里云 OSS,腾讯云 COS 这些) 以来,这次又带来了一个大活,内置了 Redis协议

好家伙,这真是在整活的路上一路狂奔啊,据我所知,而且很有可能,后续版本会直接内置 Email,发邮件都不用安装依赖啦!

唉,脑壳痛,不好判断这个事情是好是坏,是过于超前呢,还是过于激进了。

话不多说,分享下本次的主要更新内容吧。

内置了 Redis 协议

这是本次更新的重点内容,使用 zig 重写了 redis 客户端,目前支持 66 个命令,更多命令正在路上,同时也支持 redis.send(command, args) 直接发送原始命令。

由于使用 zig 重写,所以在主要优势就是性能更好,速度更快。

以上性能对比来看,Bun 内置的 Redis 比 Node.js 的 ioredis 模块快至少一倍以上。

这个功能,我目前唯一担心的就是,内置这么多功能,维护得过来吗?由于是用 zig 实现,对于贡献的难度肯定更大了。

不过,很多基础设置也不会频繁变动,内置到运行时中,确实能省不少事情,各种框架如果只支持 Bun 的话,能减少不少依赖。

各位读者你们的评价呢,欢迎评论区留言。

可以列出静态存储的对象了

目前,Bun.S3Client 已经支持 ListObjectsV2,允许您使用分页和过滤选项列出 S3 存储桶中的对象。

更多支持的 libuv 符号

此版本增加了对几个 libuv 互斥和计时功能的支持,这些功能对于需要这些 API 的本机附加组件至关重要。

支持 require.extensions

Bun 现在完全支持 require.extensions 对象,从而提高了与 node:module 模块的兼容性。

这允许我们为不同的文件扩展名注册自定义处理程序。

支持 require.resolvepaths 选项

require.resolve 函数现在支持路径选项,允许您指定其他目录来搜索模块。

WebKit 内核更新

  • 多态数组访问 :在 Float32ArrayFloat64ArrayArray 上调用相同的函数会更快。
  • Number.isFinite() 优化 :用 C++ 重写了 Number.isFinite(),执行速度提高了约 1.6倍
  • 数组方法优化 :添加了专用的 JIT 操作,用于搜索 Int32 数组中的非类型化元素:
    • Array.prototype.indexOf 现在对于 Int32 数组中的非类型元素速度提高了约 5.2倍
    • Array.prototype.includes 现在对于 Int32 数组中的非类型元素来说速度提高了约 4.7倍
  • 改进了 NaN 处理 :当输入为双精度数时,将 globalThis.isNaN 降低为 Number.isNaN
  • 整数到浮点数的转换 :为 ARM64 和 x64 架构添加了优化的 convertUInt32ToDoubleconvertUInt32ToFloat 函数,使 JavaScript 和 WebAssembly 都受益。

Bun.connect() 添加字段

以前,从 Bun.connect() 获取的套接字只有 .localPort.remoteAddress 字段来检查套接字和对等体。

此后,它们已增强,拥有 .localAddress.localFamily.remoteFamily.remotePort

这些属性的内容与同名的 node:net.Socket 属性中获取的内容一致。

Bun.spawn 等添加 maxBuffer 属性

如果 yes 调用发出的输出超过 100 字节,此选项将终止该调用。

这提供了另一种有效方法,可以防止生成的程序意外消耗过多资源。

它在 Bun.spawnBun.spawnSyncnode:child_process.spawnnode:child_process.spawnSync 中受支持。

以上就是本次 Bun v1.2.9 的主要更新内容,其他的就是一些问题修复。

目前我已经 All in Bun 了,关注我,持续带来 Bun 的最新资讯。


感谢阅读,本文由编程记者 前端之虎陈随易 撰稿,转载请保留顶部信息。

相关推荐
bobz9658 分钟前
libvirt unix_sock_dir 控制三种 socket 所在目录
后端
henujolly18 分钟前
yarn、pnpm、npm
前端
会飞的架狗师1 小时前
【SpringBoot实战】优雅关闭服务
java·spring boot·后端
江城开朗的豌豆1 小时前
JavaScript篇:构造函数 vs Class:谁才是对象创建的王者?
前端·javascript·面试
江城开朗的豌豆1 小时前
JavaScript篇:数组找不同:如何快速找出两个数组间的'单身狗'元素?
前端·javascript·面试
不吃鱼的羊1 小时前
ISOLAR软件生成报错处理(七)
java·前端·javascript
TE-茶叶蛋2 小时前
React-props
前端·javascript·react.js
安分小尧2 小时前
[特殊字符] 超强 Web React版 PDF 阅读器!支持分页、缩放、旋转、全屏、懒加载、缩略图!
前端·javascript·react.js
EndingCoder2 小时前
React从基础入门到高级实战:React 高级主题 - React Concurrent 特性:深入探索与实践指南
前端·javascript·react.js·前端框架
EndingCoder2 小时前
React从基础入门到高级实战:React 生态与工具 - React Query:异步状态管理
前端·javascript·react.js·前端框架