参考生态选型决策
生态选型决策
按可移植性、成熟度和生产约束选择 Bun 后端、全栈、数据库与工程工具
最后更新于
状态核验:2026-08-02。生态版本和稳定性变化很快,选型前必须重新检查官方文档、Release、Issue 和许可证。
后端服务边界
| 方案 | 优势 | 优先使用条件 | 主要风险 |
|---|---|---|---|
Bun.serve | 无框架、原生 Request/Response | Webhook、小型 API、CLI 内置服务 | 认证、验证、OpenAPI 等要自行组织 |
| Hono | Web Standards、跨运行时 | 可能部署 Bun、Node、Workers;API/MCP 共享边界 | 跨运行时能力以共同子集为准 |
| Elysia | Bun-first、端到端类型生态 | 服务确定只运行在 Bun | 框架大版本和插件兼容需独立验证 |
| H3 / Nitro | 部署层和多平台输出 | Nuxt、SSR 或需要 Nitro preset | Preset 与平台行为必须实测 |
选择框架前先回答:是否需要 OpenAPI、类型客户端、认证中间件、跨运行时部署,以及团队是否能承担框架升级回归。简单服务不必为了“技术栈完整”额外引入框架。
React、Vue 与全栈
| 方案 | 当前边界 | 建议 |
|---|---|---|
| Next.js + Bun | Bun 可安装依赖并运行 Next 开发/生产命令 | 继续使用 Next 官方构建命令,逐版本跑 SSR/ISR/原生依赖回归 |
| TanStack Start | 当前仍是 RC;Bun 专用部署要求 React 19 | 新产品可评估,固定版本并覆盖 SSR、Streaming、Server Function |
| TanStack Router + Hono | 前后端边界清晰、运行时可移植 | 风险敏感系统的稳定路径之一 |
| Nuxt / Nitro | Nitro 提供 Bun preset | Vue/Nuxt 项目优先遵循 Nitro 官方部署形态 |
| Vite SPA | Bun 可直接运行 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 Monorepo | Oxlint + 明确的 Formatter;避免与 ESLint 大量重复 |
| 中型 Web Monorepo | Bun Workspaces + Turborepo |
| Generator 和企业项目边界 | 评估 Nx |
| 多语言 Monorepo | 评估 moon 或组织现有构建平台 |
工具数量不是质量指标。一个规则只保留一个主要执行者,并在 CI 固化同一命令。
值得研究的工程
anomalyco/opencode:大型 Bun Workspaces、Catalog、Patch 和多应用组织方式;openstatusHQ/openstatus:Hono、Drizzle、Next.js 与多服务边界;复制前检查 AGPL-3.0;oven-sh/bun-ecosystem-ci:为 Bun 兼容性回归组织真实生态测试;oven-sh/awesome-bun:用于发现项目,不代表生产质量背书。
研究仓库时检查最后 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 guides、Hono、Elysia best practices、TanStack Start、Nitro Bun、Better Auth。