这个项目能做什么
Bun 是一款面向开发者的现代 Golang ORM,适合偏好直接编写 SQL,同时希望获得类型安全、结构化查询和数据库可移植性的开发者。与抽象掉 SQL 的其他 ORM 不同,Bun 拥抱 SQL——允许你使用 Go 方法构建复杂且可读的查询,同时保持对生成 SQL 的完全控制。
Bun 支持多种数据库,包括 PostgreSQL、MySQL/MariaDB、SQLite、Microsoft SQL Server 和 Oracle,每种数据库都有对应的驱动和方言。查询结果可以扫描到结构体、map、切片或标量值中,提供灵活的数据消费方式。表之间的关系通过结构体标签定义,支持 eager loading 加载 has-many 或 belongs-to 等关联模型。
Bun 包含生产就绪的功能,如迁移(支持版本化模式变更)、批量操作(插入/更新/删除)、软删除,以及 OpenTelemetry 集成以提供可观测性。调试方面支持详细的查询日志记录,性能方面基于 Go 标准 `database/sql` 包构建,开销极小。
该库提供详尽的文档、示例和生产用入门套件。它还集成了开源 APM 工具 Uptrace,用于分布式追踪和监控。社区支持可通过 Discord 和 GitHub Discussions 获取。
对于追求 SQL 表达能力与 ORM 便利性之间平衡的团队而言,Bun 避免了魔法操作,能在 Go 应用中交付强大且可维护的数据访问层。
评论
0 评分人数达到10人后显示
登录后参与讨论。