Rust版Bun1.4之前, 盘点Bun1.3新特性

40岁了,最近再学bun和ai。

Bun 1.3.14 上个月发了。

这是 1.3 系列的收官版。

1.3 这个版本线从发布到现在。

我看完 changelog。

就一个感受。

Bun 设计的API是真优雅 真简单。

今天就掰开讲讲。

一、SQL 客户端内置

以前连数据库。

得装 mysql2 或 pg。

还得自己写连接池。

代码又臭又长。

bash 复制代码
import { MySQLClient } from "bun";

const db = new MySQLClient({
  host: "127.0.0.1",
  port: 3306,
  user: "root",
  password: "123456",
  database: "shop",
});

const users = await db.query("SELECT id, name FROM users LIMIT 10");
console.log(users);

Bun 1.3 自带 MySQL 客户端。

零依赖。

直接 import 就能用。

Prepared statement 也支持。

防 SQL 注入。

也省心了。

AI 写代码也省事。

不用纠结选 mysql2 还是 pg。

直接用 Bun 自带的就行。

二、Redis 客户端内置

缓存谁家不用。

以前 ioredis 是标配。

代码一堆 callback。

看着就头疼。

bash 复制代码
import { redis } from "bun";

await redis.set("order:1001", "已支付");
const status = await redis.get("order:1001");
console.log(status);

Bun 把 Redis 客户端也内置了。

API 简单。

直连服务端。

Pipelining 也支持。

性能比 ioredis 还快一点。

不信你压测看看。

三、S3 文件操作

上传文件老写 SDK。

minio-js、aws-sdk。

代码又长又难懂。

bash 复制代码
import { s3 } from "bun";

const f = s3.file("images/avatar.png");
await f.write(Bun.file("./avatar.png"));

const buf = await f.arrayBuffer();
console.log(buf.byteLength);

Bun 1.3 把 S3 也整进来了。

文件对象语义。

跟本地 fs 一样。

读写都简单。

不夸张说。

S3 操作这块省一半代码。

四、HTTP/2 默认开启

Node 一直 HTTP/1.1。

高并发下头部阻塞。

HTTP/2 才是未来。

bash 复制代码
Bun.serve({
  port: 3000,
  fetch(req) {
    return new Response("HTTP/2 ready");
  },
});

Bun 1.3 默认就开 HTTP/2。

多路复用。

性能提升明显。

不用配置。

bash 复制代码
// HTTP/2 服务端推送示例
Bun.serve({
  port: 3000,
  fetch(req) {
    return new Response(
      `<html><script src="/app.js"></script></html>`,
      { headers: { "content-type": "text/html" } }
    );
  },
});

压测对比一下。

你就知道差多少。

五、bundler 大提速

前端项目打包。

慢得让人抓狂。

bash 复制代码
await Bun.build({
  entrypoints: ["./src/main.tsx"],
  outdir: "./dist",
  target: "browser",
  minify: true,
});

Bun 的 bundler。

底层是 Zig 写的。

打 React 项目。

比 webpack 快 10 倍不止。

这话真不夸张。

我自己测过。

一个 3MB 的项目。

打包就几百毫秒。

开发体验拉满。

六、workspace 终于有了

monorepo 现在是主流。

以前得 yarn workspaces。

还得 pnpm 配置。

bash 复制代码
{
  "name": "my-app",
  "workspaces": ["packages/*"]
}

Bun 1.3 原生支持 workspace。

一个配置文件搞定。

bash 复制代码
bun install

依赖自动 link。

不用再装一堆工具了。

七、test runner 更稳

测试也得写。

Bun 自带 test。

bash 复制代码
import { test, expect } from "bun:test";

test("两数相加", () => {
  expect(1 + 2).toBe(3);
});

test("异步加法", async () => {
  const v = await Promise.resolve(5);
  expect(v).toBe(5);
});

API 兼容 jest。

老代码迁过来。

改改 import 就行。

跑得还贼快。

八、前端 dev server 完善

写前端老启 vite。

Bun 直接当 dev server。

bash 复制代码
import index from "./index.html";

Bun.serve({
  port: 3000,
  routes: {
    "/": index,
  },
  development: true,
});

HTML 也能 import。

热更新自带。

省了一个 vite。

九、HTML imports 新玩法

Bun 1.3 还有个狠活。

HTML 文件能直接 import。

bash 复制代码
import html from "./page.html";

console.log(html);

HTML 里的 JS、CSS。

Bun 自动提取。

打包时处理。

不用配 loader。

这波真省事。

展望:Rust 重构版

说完了 1.3。

再说说后面。

1.3.14 已经是 1.3 的句号。

下一个大版本。

就是 Rust 重构版了。

Bun 官方在重写引擎。

Zig 那部分。

打算换 Rust。

消息一出。

圈内就炸了。

为啥要换?

性能是核心。

Rust 的生态更成熟。

AI 也更擅长写 Rust。

bash 复制代码
// Rust 重构版假想代码
Bun.serve({
  port: 3000,
  async fetch(req) {
    const data = await Bun.redis.get("count");
    return Response.json({ count: Number(data) });
  },
});

AI 写 Rust 代码。

训练数据多。

生成质量稳。

我用 Cursor 写 Bun 项目。

AI 给的代码。

八九不离十。

这才是换 Rust 的真原因。

AI 时代的变化

提个客观现象。

现在写代码的逻辑变了。

以前是:

我想清楚 → 手写 → 调试。

现在是:

我想清楚 → AI 生成 → 我审 → 部署。

效率提升巨大。

但门槛也变了。

你得会审。

不会审的人。

AI 写啥就是啥。

早晚出大问题。

写在最后

Bun 1.3 把生态补齐了。

SQL、Redis、S3。

都内置。

真能干活了。

接下来就是 Rust 重构版。

性能又要起飞。

你还在用 Node?

建议试 Bun。

迁移成本不大。

AI 帮忙更快。

我这 40 的老开发。

都在跟。

你们也试试看。

评论区聊聊。

你用 Bun 了吗。

相关推荐
你驴我18 分钟前
WhatsApp 消息撤回与编辑的幂等性设计实践
java·服务器·前端·后端·python
一缕清烟在人间22 分钟前
HarmonyOS开发实战:小分享-TextEditPage文字编辑器——Header+TextArea+工具栏
后端·华为·harmonyos·鸿蒙
程序员cxuan31 分钟前
Opus 5 深夜炸场,价格还挺香。。。
人工智能·后端·程序员
新中地GIS开发老师1 小时前
零基础WebGIS开发入门 | GeoJSON数据持久化
前端·javascript·gis·webgis·三维gis开发
北冥you鱼1 小时前
Go 语言新手扫盲:指针 * 和 & 使用场景详解
开发语言·后端·golang
青山木1 小时前
Hot 100 ---腐烂的橘子
java·数据结构·后端·算法·leetcode·广度优先
blns_yxl1 小时前
正则驱动实时表单验证(HTML+CSS+JS+正则)
javascript·css·html
卷无止境1 小时前
Python的collections模块:那些被低估的"瑞士军刀"
后端·python
卷无止境1 小时前
Python的方法解析顺序:一场关于继承顺序的精妙设计
后端·python
sunywz1 小时前
【c#】 Web Deploy一键发布,IIS部署全流程
开发语言·前端·c#