wire
vtprotobuf
Our great sponsors
wire | vtprotobuf | |
---|---|---|
29 | 3 | |
12,176 | 801 | |
3.0% | 2.7% | |
2.7 | 8.1 | |
18 days ago | 10 days ago | |
Go | Go | |
Apache License 2.0 | BSD 3-clause "New" or "Revised" License |
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.
wire
- 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.
-
What's the best dependency injection framework / methodology for Golang for the enterprise?
For big project you need DI framework, and I suggest Google Wire (https://github.com/google/wire)
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.
-
Generic-friendly DI library
In terms of what I compare axon to, most DI frameworks in go require either lots of reflection to add/get values from the injector with interface{} based func params like dig or code generation like in wire which can be difficult to integrate into an existing codebase.
vtprotobuf
-
2022-01-11 gRPC benchmark results
I ran the benchmark on my device. Vitess proto library improves ~30% req/s linearly with default config and 8 cpu client.
Seems like we're pretty middle of the road. I can only guess as to why but it probably has to do with heavy usage of pointers and reflection. Gogo/protobuf solved this performance with code generation, but the go protobuf implementation has essentially eschewed it. I do wonder how the benchmark would look using the new vitess proto library for Go (which has many of the benefits of gogo but with active development and an API built on top of the Google one)
What are some alternatives?
fx - A dependency injection based application framework for Go.
dig - A reflection based dependency injection toolkit for Go.
gomock - GoMock is a mocking framework for the Go programming language.
container - A lightweight yet powerful IoC dependency injection container for the Go programming language
do - ⚙️ A dependency injection toolkit based on Go 1.18+ Generics.
goioc/di - Simple and yet powerful Dependency Injection for Go
wild-workouts-go-ddd-example - Go DDD example application. Complete project to show how to apply DDD, Clean Architecture, and CQRS by practical refactoring.
gogoprotobuf - [Deprecated] Protocol Buffers for Go with Gadgets
nject - Golang type-safe dependency injection
powerproto - 🎉 An awesome version control tool for protoc and its related plugins.
go-kit - A standard library for microservices.
gocontainer - Simple Dependency Injection Container