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