nject
Golang type-safe dependency injection (by muir)
wire
Compile-time Dependency Injection for Go (by google)
Our great sponsors
nject | wire | |
---|---|---|
1 | 29 | |
28 | 12,291 | |
- | 2.3% | |
3.9 | 2.7 | |
11 months ago | about 2 months ago | |
Go | Go | |
MIT License | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nject
Posts with mentions or reviews of nject.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2022-10-28.
-
godi a New Dependency Injection library - feedback welcome
For those who commented about Java & DI: I used DI with Java and hated it. It seemed to be simply a complex interface around global variables. Please take a look at [nject]([https://github.com/muir/nject]. The idea is fundamentally different: you create an injection chain out of reusable components. I won't say that it makes DI simple, but it does alter the cost/benefit ratio such that DI becomes very advantageous for several uses.
wire
Posts with mentions or reviews of wire.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-02-28.
- Injeção de dependência em Go
-
Question about dependency initialization
We use https://github.com/google/wire for every bigger project, take a look at it, it beautifully solves initialisation and also gives you a guideline on how to do it.
-
As a Go programmer, what design pattern, programming techniques have you actually used, implemented regularly in your workplace which made your life much easier?
Im by no means a "purist" in such things, I love my magic and QoL-features/libs, but havent seen something that is so easy to use in go, that I immediately wanted to add it. And to be fair, I only looked closely at https://github.com/google/wire , others I have just skipped - and I will be looking into uber-fx as mentioned in the other comment.
-
Config for production and mocking (db connections, http parsers etc)
If you have such a complex and deep dependency graph, and you don't want to manually maintain it, you could use some DI library to handle that for you. Something like https://github.com/google/wire for small-medium size stuff, or https://github.com/uber-go/fx for larger scale, more enterprise projects.
- Is it just me or does nobody really know what idiomatic Go is.
-
What's the best dependency injection framework / methodology for Golang for the enterprise?
Try https://github.com/google/wire. Compile time generated like dagger 2 in java.
-
Modern API design with Golang, PostgreSQL and Docker.
Most people probably do it by hand (I do). But otherwise, probably https://github.com/google/wire is the most popular, maybe followed by https://github.com/uber-go/fx.
-
Google's internal Go style guide
For larger object graphs do you roll everything by hand or encourage something like https://github.com/google/wire
-
godi a New Dependency Injection library - feedback welcome
The other thing is that I'm lazy, so I don't construct all dependencies in main.go manually but use wire to generate the construction of my dependency tree.
-
Go on AWS Lambda with API Gateway and AWS SAM
This guy fucks. Modular monoliths is the way. The service initialization/wiring part could be simplified (given a bigger project ofc) using something like https://github.com/google/wire. But everything else... *chef kiss* beautiful.
What are some alternatives?
When comparing nject and wire you can also consider the following projects:
linker - Dependency Injection and Inversion of Control package
fx - A dependency injection based application framework for Go.
goioc/di - Simple and yet powerful Dependency Injection for Go
dig - A reflection based dependency injection toolkit for Go.
gomock - GoMock is a mocking framework for the Go programming language.
gocontainer - Simple Dependency Injection Container
do - ⚙️ A dependency injection toolkit based on Go 1.18+ Generics.
container - A lightweight yet powerful IoC dependency injection container for the Go programming language