工程开发
kessoku-di avatar

kessoku-di

使用并行编译期依赖注入加速 Go 应用程序启动。优化缓慢服务、替换 google/wire,并使用 kessoku 管理异步依赖。

简介

Kessoku 是一款高效能、编译期的依赖注入框架,专为需要大幅缩短应用启动时间的 Go 开发人员设计。通过同时执行独立的提供者(providers),它超越了像 google/wire 这类工具的顺序限制,非常适合微服务和云原生应用,特别是那些受限于繁重的初始化链或 Serverless 冷启动延迟的项目。该框架生成类型安全且经过优化的代码,消除了执行期反射,同时保持清晰的架构边界。无论您是正在迁移现有项目,还是正在构建需要复杂异步初始化的新服务,Kessoku 都提供强大的 API 来有效串接依赖。在管理多个数据库连接、远程 API 客户端或缓存预热任务时,它尤为显著,因为这些任务可以并行执行,而非僵化的逐一执行。

  • 自动并行执行独立提供者,以最小化总启动延迟。

  • 通过 go:generate 和 go tool kessoku 在编译期生成高效的 Go 代码,确保零执行期反射或性能损耗。

  • 无缝处理依赖图解析,包含错误传播与资源清理函数,这些会自动集成到生成的注入器中。

  • 提供从 google/wire 迁移的路径,允许结构化转换现有的 sets 和 bindings。

  • 支持接口绑定、值注入以及结构体字段展开,以应对各种构造函数签名。

  • 使用 kessoku.Inject 定义主要应用程序注入器,生成标准 Go 函数。

  • 将提供者包装在 kessoku.Async 中,为昂贵的初始化任务开启并行执行路径。

  • 使用 kessoku.Set 组织复杂的依赖树,提高大型服务实现中的代码模块化与可维护性。

  • 请注意,并行执行需要生成的函数使用 context.Context,确保您的应用程序支持上下文传播。

  • 参考内部文档和提供的迁移工具,将旧有的 wireinject 构建标签自动转换为基于 kessoku 的生成方式。

  • 可通过内置的 CLI 工具进行故障排查与调试,帮助识别依赖循环或生成错误。

仓库统计

Star 数
132
Fork 数
1
Open Issue 数
7
主要语言
Go
默认分支
main
同步状态
空闲
最近同步时间
2026年5月3日 18:45
在 GitHub 查看