什么是Bun?一个比Node.js更快的JavaScript运行时
1995年,JavaScript诞生,当时主要用来做广告弹窗;2009年,Node.js出现,JS终于可以写后端了。
但这也是麻烦的开始。之后JS发展出了世界上最复杂的工具链。
要写一个Web项目,你需要:Node.js作为运行环境,Npm作为包管理器,Webpack作为打包工具,Jest做测试,还要用Babel转译代码,还要写一大堆没人看得懂的配置文件。
这种痛苦,想必你已经体会过了。2021年,Bun说:为什么不能在运行时就把所有事情都搞定呢?然后它就火了。
Bun是什么
Bun是一个JavaScript运行时,和Node.js类似,但它非常注重性能。
为了跑得更快,Bun做了两个关键改动:
把Node.js用的C++换成了Zig
把Node.js用的V8引擎换成了Safari用的JavaScript Core
这两个改动让Bun在性能测试中表现不错。
但Bun真正厉害的地方在于,它不只是一个运行时。
它取代了你的打包工具。你可以直接写TypeScript或JavaScript,不用做任何配置。
它取代了你的测试框架和包管理器。它还内置了数据库驱动,同时又保持了和Node.js生态的兼容。
简单说,你只需要一个工具,就能搞定所有事情。
光说有点抽象,我们直接看代码。
Bun怎么用
安装Bun:
curl -fsSL https://bun.sh/install | bash创建新项目:
bun init现在你就可以直接写TypeScript代码了。
搭建一个Web服务器,不需要express,只需要这样写:
const server = Bun.serve({
port: 3000,
routes: {
"/": () => new Response('Bun!'),
}
});
console.log(`Listening on ${server.url}`);运行 bun run index.ts 就能直接看到效果。
如果你想操作数据库,直接这样写:
import { Database } from "bun:sqlite";
const db = new Database("./app.sqlite");如果你想用Redis,直接这样写:
import { redis } from "bun";
// 设置Key
await redis.set("greeting", "Hello from Bun!");
// 读取数据
const cachedDate = await redis.exists("greeting");如果你需要安装包,直接运行:
# 安装速度比npm快25倍
bun install如果你想写测试,直接这样写:
// 内置测试工具
import { test, expect } from "bun:test";
test("2 + 2 = 4", () => {
expect(2 + 2).toBe(4);
});为什么要关注Bun
Bun本身已经很火了。
2025年底,Anthropic收购了Bun,这给Bun的发展又添了一把火。
现在Bun已经被用在Claude Code等工具里,也被用在云平台的Serverless Functions上。这说明它正在成为JavaScript生态里的一个重要角色。
所以如果你正在学JavaScript,或者想试试新工具,Bun值得看一看。
就算现在不用,了解一下这个趋势,也能让你对前端生态有更深的认识。
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!