I built Kessoku to solve a simple problem: Go apps start too slowly.
Your app probably initializes services like this:
DB (300ms) β Cache (200ms) β Auth (100ms) = 600ms π΄
Kessoku runs them in parallel:
DB (300ms) β
Cache (200ms) ββ = 300ms π
Auth (100ms) β
Quick Example
//go:generate go tool kessoku $GOFILE
var _ = kessoku.Inject[*App]("InitApp",
kessoku.Async(kessoku.Provide(NewDB)), // These run
kessoku.Async(kessoku.Provide(NewCache)), // at the same
kessoku.Async(kessoku.Provide(NewAuth)), // time!
kessoku.Provide(NewApp),
)
Get Started
go get -tool github.com/mazrean/kessoku/cmd/kessoku
That's it. Your app now starts faster.
Why Kessoku?
- Compile-time: Zero runtime overhead (unlike uber/fx)
-
Automatic: Just add
Async()to parallelize - Compatible: Drop-in replacement for google/wire
Perfect for microservices, serverless functions, or any app with multiple slow initializations.

Top comments (0)