Compile-time dependency injection for Go. The design enforce the developer to consider the component relationships and avoid circular dependencies. It is a good tool to build a clean architecture in Go.