工程開發
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日 下午06:45
在 GitHub 查看