Skip to content

Releases: mazrean/kessoku

v1.1.0

04 Jan 10:25
eaa3e21

Choose a tag to compare

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.go

Supported wire patterns:

  • wire.NewSetkessoku.Set
  • wire.Bindkessoku.Bind
  • wire.Valuekessoku.Value
  • wire.InterfaceValuekessoku.Bind + kessoku.Value
  • wire.Structkessoku.Provide with struct initialization
  • wire.FieldsOfkessoku.Provide with 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 --user

Bug 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.Context parameters exist in the same file

Full Changelog: v1.0.1...v1.1.0

v1.0.1

01 Jan 07:03
065a7e0

Choose a tag to compare

Bug Fixes

Async Provider Fixes

  • Fix duplicate context.Context injection in async providers (#42)

    • Fixed a bug where async providers requiring context.Context as an argument would cause duplicate context.Context parameters in the generated injector function
    • Now checks for existing context.Context and moves it to first position instead of adding a duplicate
  • 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

27 Jul 06:10
cf9ba73

Choose a tag to compare

🚀 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 functions
  • kessoku.Async() - Parallel execution for slow providers
  • kessoku.Provide() - Standard dependency providers
  • kessoku.Bind[Interface]() - Clean interface mappings
  • kessoku.Value() - Inject constants and configs
  • kessoku.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: .deb packages
  • Red Hat/CentOS/Fedora: .rpm packages
  • Alpine Linux: .apk packages
  • Cross-platform binaries: Linux, Windows, macOS

🏗️ Developer Experience

  • Drop-in google/wire replacement - minimal learning curve
  • go generate integration 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

🏆 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

18 Jul 11:00
83f271a

Choose a tag to compare

v1.0.0-beta Pre-release
Pre-release

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 parallel
  • kessoku.Provide(fn) - Standard provider registration
  • kessoku.Inject[T](name, ...) - Generate injector functions
  • kessoku.Set(...) - Group providers for reuse
  • kessoku.Value(val) - Inject constants
  • kessoku.Bind[Interface](impl) - Interface to implementation binding

📖 Documentation

🎯 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