Releases: mazrean/kessoku
v1.1.0
New Features
Wire Migration Command (#46)
Added kessoku migrate command to convert google/wire configuration files to kessoku format.
# Basic migration
go tool kessoku migrate wire.go -o kessoku.go
# Migrate package patterns
go tool kessoku migrate ./... -o kessoku.goSupported wire patterns:
wire.NewSet→kessoku.Setwire.Bind→kessoku.Bindwire.Value→kessoku.Valuewire.InterfaceValue→kessoku.Bind+kessoku.Valuewire.Struct→kessoku.Providewith struct initializationwire.FieldsOf→kessoku.Providewith field accessors
Struct Field Expansion (#45)
Added kessoku.Struct[T]() to expand struct fields as individual dependencies.
var _ = kessoku.Inject[*App](
"InitializeApp",
kessoku.Provide(NewConfig), // Provides *Config
kessoku.Struct[*Config](), // Expands Config fields as dependencies
kessoku.Provide(NewApp), // Can now receive individual config fields
)LLM Setup Command (#47)
Added kessoku llm-setup subcommand that installs kessoku usage instructions as coding agent skill files.
# Install for Claude Code
kessoku llm-setup claude-code
# Install for Cursor
kessoku llm-setup cursor
# Install for GitHub Copilot
kessoku llm-setup copilot
# Install to user-level directory
kessoku llm-setup claude-code --userBug Fixes
- Fix multiple parallel pool dependencies (#44): Fixed a bug where providers depending on multiple parallel async providers were not being generated
- Fix context parameter name in errgroup.WithContext (#48): Fixed compilation error when multiple injectors with
context.Contextparameters exist in the same file
Full Changelog: v1.0.1...v1.1.0
v1.0.1
Bug Fixes
Async Provider Fixes
-
Fix duplicate context.Context injection in async providers (#42)
- Fixed a bug where async providers requiring
context.Contextas an argument would cause duplicatecontext.Contextparameters in the generated injector function - Now checks for existing
context.Contextand moves it to first position instead of adding a duplicate
- Fixed a bug where async providers requiring
-
Skip errgroup generation when no goroutines are created (#43)
- Previously errgroup was generated whenever async providers existed, even for linear dependency chains
- Now errgroup is only generated when actual goroutine creation (
InjectorChainStmt) exists
Dependencies
- Bump golang.org/x/tools from 0.35.0 to 0.40.0 (#23, #27, #29, #34, #38)
- Bump golang.org/x/sync from 0.16.0 to 0.19.0 (#28, #39)
- Bump github.com/alecthomas/kong from 1.12.1 to 1.13.0 (#35)
- Bump actions/checkout from 4 to 6 (#25, #36)
- Bump actions/setup-go from 5 to 6 (#26)
- Bump actions/upload-artifact from 4 to 6 (#30, #40)
Documentation
- Add GMO OSS badge to README (#31)
- Add support section to README (#32)
- Fix incorrect reference to uber/fx -> uber-go/dig (#24)
Full Changelog: v1.0.0...v1.0.1
v1.0.0
🚀 Kessoku v1.0.0 - The Fast Lane to Dependency Injection
Finally here! The first stable release of Kessoku - the dependency injection library that speeds up your Go app startup by up to 2.25x through intelligent parallel execution.
🎯 What Makes This Special
Stop waiting for services to start one by one. Kessoku automatically runs independent providers in parallel:
- Database + Cache + Auth + APIs = All at once ⚡
- google/wire compatible but with parallel superpowers
- Zero runtime overhead - everything happens at compile time
- Perfect for cold starts - Lambda functions, serverless, development restarts
✨ Key Features
🔥 Parallel Dependency Injection
- Sequential (old way): 450ms total wait time
- Parallel (Kessoku way): 200ms total wait time
- Use
kessoku.Async()to run slow services concurrently
🛠️ Complete API Surface
kessoku.Inject[T]()- Generate lightning-fast injector functionskessoku.Async()- Parallel execution for slow providerskessoku.Provide()- Standard dependency providerskessoku.Bind[Interface]()- Clean interface mappingskessoku.Value()- Inject constants and configskessoku.Set()- Reusable provider bundles
📦 Multiple Installation Methods
- Go tool:
go get -tool github.com/mazrean/kessoku/cmd/kessoku - Homebrew:
brew install mazrean/tap/kessoku - Debian/Ubuntu:
.debpackages - Red Hat/CentOS/Fedora:
.rpmpackages - Alpine Linux:
.apkpackages - Cross-platform binaries: Linux, Windows, macOS
🏗️ Developer Experience
- Drop-in google/wire replacement - minimal learning curve
go generateintegration for seamless workflow- Compile-time safety - catch dependency issues early
- Rich examples - basic, async_parallel, sets
🎯 Perfect For
- 🥶 Cold start optimization - Serverless functions that timeout during init
- 🔄 Development hell - You restart your app 10+ times daily
- 🗄️ Multi-service apps - PostgreSQL + Redis + S3 + Auth0 + APIs
- 🔧 google/wire users - Who want to keep compile-time DI but need speed
📊 Performance Impact
Result: 450ms → 200ms startup time (2.25x faster)
🚀 Quick Start
📚 Documentation & Examples
- API Reference: pkg.go.dev/github.com/mazrean/kessoku
- Examples: github.com/mazrean/kessoku/tree/main/examples
- Logo & Branding: Project assets included
🏆 vs Alternatives
| Feature | Kessoku | google/wire | uber/fx |
|---|---|---|---|
| Startup Speed | ⚡ Parallel | Sequential | Sequential + Runtime |
| Learning Curve | 📚 Minimal | Minimal | Steep |
| Runtime Overhead | 🚫 Zero | Zero | Heavy |
| Production Ready | ✅ Yes | Yes | Yes |
Ready to make your Go apps startup blazingly fast?
go get -tool github.com/mazrean/kessoku/cmd/kessoku
Every restart just got faster. Every cold start just got warmer. 🔥
v1.0.0-beta
Kessoku v1.0.0-beta
Make your Go app start 2x faster with parallel dependency injection.
🚀 What's New
Core Features
- Parallel Execution: Run independent providers simultaneously instead of sequentially
- google/wire Compatible: Drop-in replacement with familiar API
- Compile-time Safety: Zero runtime overhead, all wiring happens at build time
- Automatic Dependency Resolution: Smart detection of provider dependencies
Key APIs
kessoku.Async(provider)- Execute providers in parallelkessoku.Provide(fn)- Standard provider registrationkessoku.Inject[T](name, ...)- Generate injector functionskessoku.Set(...)- Group providers for reusekessoku.Value(val)- Inject constantskessoku.Bind[Interface](impl)- Interface to implementation binding
📖 Documentation
- Installation:
go get -tool github.com/mazrean/kessoku - Examples: Check out the examples/ directory
- API Reference: pkg.go.dev/github.com/mazrean/kessoku
🎯 Perfect For
- Applications with multiple slow services (DB, cache, APIs)
- Microservices with complex initialization sequences
- Lambda functions with cold start optimization needs
- Projects migrating from google/wire seeking better performance
📊 Performance Impact
Transform your startup time from sequential waiting to parallel execution:
- Before: DB (300ms) → Cache (150ms) → Auth (200ms) = 650ms total
- After: DB, Cache, Auth run together = 300ms total (53% faster)
🛠️ Migration from google/wire
// Before (google/wire)
wire.Build(NewDB, NewCache, NewAuth, NewApp)
// After (Kessoku)
kessoku.Inject[*App]("InitApp",
kessoku.Async(kessoku.Provide(NewDB)),
kessoku.Async(kessoku.Provide(NewCache)),
kessoku.Async(kessoku.Provide(NewAuth)),
kessoku.Provide(NewApp),
)📝 License
MIT License - see LICENSE file for details.
Note: This is a beta release. While the core functionality is stable and production-ready, the API may still evolve based on community feedback.
🤖 Generated with Claude Code