The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 23 Dependency Injection Open-Source Projects
-
Iris
The fastest HTTP/2 Go Web Framework. New, modern and easy to learn. Fast development with Code you control. Unbeatable cost-performance ratio :rocket:
Iris is a fast and lightweight web framework for Go that offers a rich set of features and a high-performance engine. PostgreSQL is a powerful and reliable relational database system that supports advanced data types and functions. Together, they can form a solid foundation for building modern web applications.
-
Project mention: Dagger 2.49 (KSP, @AssistedInject with @HiltViewModel, more) | /r/androiddev | 2023-12-05
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
Guice
Guice (pronounced 'juice') is a lightweight dependency injection framework for Java 8 and above, brought to you by Google.
Project mention: Hexagonal Architecture/Ports And Adapters: Clarifying Key Concepts Using Go | dev.to | 2024-03-21Historically, Ports and Adapters was born in the context where Dependency Inversion Principle (DIP) was getting hot, back in the beginning of the 2000’s. DIP was getting more present on development day to day, and an example of a framework that was a pioneer in such topic is Google Guice.
-
-
InversifyJS
A powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript.
Take a class for which we are tasked to write a unit test. This class may have a dozen methods and a dozen more attributes. In my environment we were already using inversify to dependency inject into this class, and using container snapshot and restore as setup and teardown operators, in our jest test file. But it began getting out of control even after refactoring into test cases and test runners.
-
getx
Open screens/snackbars/dialogs/bottomSheets without context, manage states and inject dependencies easily with Get.
the maintainer is a liar (link)
-
koin
Koin - a pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform
Project mention: Kotlin Multiplatform and Swift - Overcoming Interoperability Challenges for Multiplatform Development | dev.to | 2023-07-16Let's see how we can use Koin to achieve Dependency Injection (DI) and incorporate a third-party iOS Swift SDK in a KMM project. Koin supports KMM development, making it the ideal choice for KMM projects.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
-
hyperf
🚀 A coroutine framework that focuses on hyperspeed and flexibility. Building microservice or middleware with ease.
-
-
Project mention: I write HTTP services in Go after 13 years (Mat Ryer, 2024) | news.ycombinator.com | 2024-02-09
I found fx(https://github.com/uber-go/fx) to be a super simple yet versatile tool to design my application around.
All the advice in the article is still helpful, but it takes the "how do I make sure X is initialized when Y needs it" part completely out of the equation and reduces it from an N*M problem to an N problem, ie I only have to worry about how to initialize individual pieces, not about how to synchronize initialization between them.
I've used quite a few dependency injection libraries in various languages over the years (and implemented a couple myself) and the simplicity and versatility of fx makes it my favorite so far.
-
loopback-next
LoopBack makes it easy to build modern API applications that require complex integrations.
-
Alguns frameworks trabalham desta forma por padrão, como é o caso do Angular, quando este não é o padrão do framework que utilizamos podemos usar alguma biblioteca, como a Inversify ou tsyringe da Microsoft.
-
When I was building application with .NET Framework I always used libraries like Autofac and SimpleInjector for dependency injection. I really liked to create modules (Packages in SimpleInjector) to achieve higher cohesion and lower coupling in my class libraries. I made a module for every class library in which all dependencies inside of that class library were registered. Why should my web application (for example) know if MyBeautifulService in MyBeautifulClassLibrary should be transient or singleton?
-
Symfony DI
Allows you to standardize and centralize the way objects are constructed in your application
-
go-coffeeshop
☕ A practical event-driven microservices demo built with Golang. Nomad, Consul Connect, Vault, and Terraform for deployment
Project mention: Could you share an microservices architecture having synchronous and async(kafka) and Caching(Redis) used in your Organization. | /r/microservices | 2023-03-28 -
In this tutorial, we're building a simple application which uses Cerbos inside of a GraphQL server. The server is written in typescript and uses type-graphql to create the schema and resolvers, and TypeDI to handle dependency injection.
-
-
Nothing to do with the nature of the language, but with the nature of the program.
If you're writing a few line script, you don't need a DI container. Once your program gets large, it becomes extremely messy without one. It's no surprise projects like [1] exist.
-
-
-
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Dependency Injection related posts
- Modular Dependency Injection in .NET
- Hexagonal Architecture/Ports And Adapters: Clarifying Key Concepts Using Go
- Injeção de dependência em Go
- Inversion of Control Containers and the Dependency Injection Pattern (2004)
- Announcing AdonisJS v6
- How to Apply SOLID with Testing JS/TS Class Methods
- Another small hack I use for prototyping
-
A note from our sponsor - WorkOS
workos.com | 28 Mar 2024
Index
What are some of the best open-source Dependency Injection projects? This list will help you:
Project | Stars | |
---|---|---|
1 | Iris | 24,792 |
2 | Dagger2 | 17,286 |
3 | Guice | 12,321 |
4 | wire | 12,137 |
5 | InversifyJS | 10,737 |
6 | getx | 9,712 |
7 | koin | 8,580 |
8 | Swinject | 6,155 |
9 | hyperf | 5,882 |
10 | go-clean-template | 5,878 |
11 | fx | 5,091 |
12 | loopback-next | 4,831 |
13 | tsyringe | 4,726 |
14 | Autofac | 4,357 |
15 | Symfony DI | 4,044 |
16 | go-coffeeshop | 3,901 |
17 | typedi | 3,892 |
18 | dig | 3,656 |
19 | Dependency Injector | 3,553 |
20 | Scrutor | 3,386 |
21 | awilix | 3,296 |
22 | Kodein | 3,128 |
23 | marshal.ts | 3,043 |