The
google/wireproject has been archived — for good this time.After a brief unarchiving period, it was archived again on August 25, 2025, and it is now completely unmaintained.
wireinject/wire is a community project dedicated to maintaining a runnable version of google/wire.
The original google/wire repository has been archived by Google and is no longer maintained. This has led to a critical issue:
With upcoming Go releases (such as Go 1.25), attempting to install wire via go install fails due to an outdated dependency on golang.org/x/tools. The build fails with the following compile error:
# golang.org/x/tools/internal/tokeninternal
.../go/pkg/mod/golang.org/x/tools@v0.17.0/internal/tokeninternal/tokeninternal.go:78:9: invalid array length -delta * delta (constant -256 of type int64)
This issue breaks CI/CD pipelines for any project that relies on wire for code generation once they upgrade their Go toolchain. To solve this problem, we created wireinject/wire.
Now that google/wire is permanently unmaintained, wireinject/wire takes over its upkeep — but its scope remains deliberately narrow:
- We fix bugs, including compatibility problems with new Go toolchains and their dependencies.
- We add small, scoped features when they are clearly useful and low-risk.
- We do not overhaul the project. The core design, public API, and command-line interface stay compatible with
google/wire. - We do not modify the golden tests that pin the generated output. The code
wireproduces for existing projects keeps working exactly as before.
Stability comes first: every change is weighed against the risk it poses to existing users. This fork is a drop-in replacement you can rely on, not a moving target.
Bug reports and feature requests are welcome via GitHub issues.
Migrating from the original google/wire is straightforward, and no changes to your project's code are required.
You simply need to replace the wire binary on your system with the version compiled from wireinject/wire.
Run the following command to install the patched wire tool:
go install github.com/wireinject/wire/cmd/wire@latest
After installation, ensure that the wire command in your $PATH points to the newly installed executable. You can verify this using the which wire command.
The wire_gen.go file produced by wireinject/wire is identical to the file generated by the original google/wire. Your existing workflows will not be affected in any way.