生态选型决策

按可移植性、成熟度和生产约束选择 Bun 后端、全栈、数据库与工程工具

最后更新于

状态核验:2026-08-02。生态版本和稳定性变化很快,选型前必须重新检查官方文档、Release、Issue 和许可证。

后端服务边界

方案优势优先使用条件主要风险
Bun.serve无框架、原生 Request/ResponseWebhook、小型 API、CLI 内置服务认证、验证、OpenAPI 等要自行组织
HonoWeb Standards、跨运行时可能部署 Bun、Node、Workers;API/MCP 共享边界跨运行时能力以共同子集为准
ElysiaBun-first、端到端类型生态服务确定只运行在 Bun框架大版本和插件兼容需独立验证
H3 / Nitro部署层和多平台输出Nuxt、SSR 或需要 Nitro presetPreset 与平台行为必须实测

选择框架前先回答:是否需要 OpenAPI、类型客户端、认证中间件、跨运行时部署,以及团队是否能承担框架升级回归。简单服务不必为了“技术栈完整”额外引入框架。

React、Vue 与全栈

方案当前边界建议
Next.js + BunBun 可安装依赖并运行 Next 开发/生产命令继续使用 Next 官方构建命令,逐版本跑 SSR/ISR/原生依赖回归
TanStack Start当前仍是 RC;Bun 专用部署要求 React 19新产品可评估,固定版本并覆盖 SSR、Streaming、Server Function
TanStack Router + Hono前后端边界清晰、运行时可移植风险敏感系统的稳定路径之一
Nuxt / NitroNitro 提供 Bun presetVue/Nuxt 项目优先遵循 Nitro 官方部署形态
Vite SPABun 可直接运行 Vite静态前端简单可靠;API 独立部署
Astro静态构建与 Bun 配合直接SSR 继续使用 Astro 官方 Adapter,不自创服务器输出

“能启动”只证明 Happy Path。生产验收还要覆盖 hydration、流式响应、缓存头、静态资源、Server Function、安全边界和升级回滚。

数据与认证

方案适合采用前确认
直接 Bun.SQL查询简单、团队熟悉 SQL迁移工具、缺失协议能力、连接池预算
Drizzle + Bun.SQL需要 Schema、迁移和类型查询当前 Bun.SQL 集成版本、Drizzle Kit、目标数据库
Prisma团队已有 Prisma 资产CLI 动态子命令仍要求环境中有 npm;生成客户端与 Adapter
Better Auth minimal使用 Drizzle/Prisma 等 Adapter不支持直接数据库连接和内置迁移

不要把 ORM 类型当作数据库运行时验证。唯一约束、事务隔离、迁移锁和索引行为仍由数据库负责。

代码质量和 Monorepo

场景起点
新建普通应用Biome,或沿用团队已经稳定的 ESLint 配置
大型 JavaScript MonorepoOxlint + 明确的 Formatter;避免与 ESLint 大量重复
中型 Web MonorepoBun Workspaces + Turborepo
Generator 和企业项目边界评估 Nx
多语言 Monorepo评估 moon 或组织现有构建平台

工具数量不是质量指标。一个规则只保留一个主要执行者,并在 CI 固化同一命令。

值得研究的工程

研究仓库时检查最后 Commit、Release、Issue、CI、许可证、锁文件格式和当前 Bun 版本。学习架构,不复制未经理解的配置。

Agent 选型输出格式

Decision: <selected option>
Runtime boundary: <Bun-only or portable Web APIs>
Why: <requirements matched>
Rejected: <alternatives and concrete reasons>
Version evidence: <official page or release checked today>
Required tests: <integration, deployment, rollback>

推荐是带日期的判断

不要把本文矩阵转换成永久的“最佳框架排行榜”。项目约束、一手资料和可重复测试优先于社区热度。

官方参考:Bun ecosystem guidesHonoElysia best practicesTanStack StartNitro BunBetter Auth