do
⚙️ A dependency injection toolkit based on Go 1.18+ Generics. (by samber)
dig
A reflection based dependency injection toolkit for Go. (by uber-go)
Our great sponsors
do | dig | |
---|---|---|
6 | 5 | |
1,590 | 3,688 | |
- | 2.2% | |
5.5 | 5.9 | |
about 2 months ago | about 1 month ago | |
Go | Go | |
MIT License | MIT License |
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.
do
Posts with mentions or reviews of do.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-02-18.
- Google’s Wire: Automated Dependency Injection in Go
-
Genjector: Reflection-free Run-Time Dependency Injection framework for Go 1.18+
How does this compare with https://github.com/samber/do ?
-
Modular monolithic codebase architecture example using Hooks and Do (for DI)
Last week I posted here about a new library that I released called hooks that was generally well-received. I've since built out an example application using hooks and do (excellent library for dependency-injection) to not only highlight use-cases for hooks but also to demonstrate the larger idea/concept I had for using hooks to build modular monoliths with Go that I wanted to share and perhaps start a discussion about.
-
Hooks: Simple, type-safe hook system for Go
It's not, but I've been thinking about it. I may experiment with it in a different branch of a different repo. I'm not sure if everyone would want hooks included or baked in to Pagoda, but I do think it would be a very good fit. I recently worked on and published an application example using hooks and do (for DI) to emphasize a fully modular architecture: https://github.com/mikestefanello/hooks-example. That highlights the vision I had for the overall approach with hooks, and I think it came out quite nice. I'd really like feedback on that, so if you have any, please let me know.
- Show HN: A dependency injection library based on Go 1.18 Generics
- A dependency injection toolkit based on Go 1.18+ Generics. Support for health checks and graceful shutdown.
dig
Posts with mentions or reviews of dig.
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
-
Go doesn’t do any magical stuff and I love that
Ironically given Spring’s history, you do have dependency injection in Go. But you don’t need to use it unless there’s a clear benefit. Most code reviewers would be appalled if you pulled in dig into a project that didn’t need it.
-
What's the best dependency injection framework / methodology for Golang for the enterprise?
Interesting, one of my friends works at a big tech company and they said they passed on Wire and ultimately decided on Uber Dig https://github.com/uber-go/dig. But looking at that lib it seems a bit anti-paradigm of the goal of the Golang language (no magic/obfuscated code running in the background, what you see is what you get style coding)
-
Is dependency injection in Go a thing?
It's a library to help with DI, by Uber: https://github.com/uber-go/dig
- Alternative for Monkey patching
What are some alternatives?
When comparing do and dig you can also consider the following projects:
wire - Compile-time Dependency Injection for Go
fx - A dependency injection based application framework for Go.
goioc/di - Simple and yet powerful Dependency Injection for Go
wire - Strict Runtime Dependency Injection for Golang
di - 🛠 A full-featured dependency injection container for go programming language.
gocontainer - Simple Dependency Injection Container
container - A lightweight yet powerful IoC dependency injection container for the Go programming language
nject - Go dependency injection: nject & npoint