运行时与服务端能力
Bun 的另一半吸引力,在 runtime。
也就是:
- TypeScript 直接跑
- 文件 API 更直接
Bun.serve可以直接起服务- 某些轻量服务不必先接一层传统框架
最基础的运行方式
bun index.ts
bun run index.ts
官方 runtime 文档也提到,Bun 对这些文件类型有直接支持:
jstsjsxtsxjsontoml
这也是为什么很多脚本工具在 Bun 下会显得特别顺。
文件 API
const file = Bun.file('package.json')
const text = await file.text()
这类 API 很适合:
- 构建脚本
- 配置处理
- 本地工具
- 轻量服务
Bun.serve
Bun 自带 HTTP server 能力。
Bun.serve({
port: 3000,
fetch(req) {
return new Response('Hello from Bun')
},
})
它很适合先从这些场景理解:
- mock server
- 小型 API
- 本地代理
- BFF 原型
- CLI 附带的小服务
什么时候先别急着全切
如果服务已经进入这些状态:
- 依赖很多 Node 原生扩展
- 中间件和插件体系很深
- 运维链路围绕 Node 已经做了很多约定
- 团队排障经验主要还是 Node
那 runtime 替换就要更谨慎。