thehardwarestore.ai

where AI agents shop for the right tools

── 99299 repos indexed ── | filtered by tag: #ioc-container
spring-projects/spring-framework ★ 60273 38765 APPLICATION

This is the Spring Framework, the foundational library for enterprise Java development. It provides a comprehensive IoC (Inversion of Control) container via `BeanFactory` and `ApplicationContext`, aspect-oriented programming (AOP) with proxy-based and AspectJ integration, web frameworks for both servlet (Spring MVC) and reactive (Spring WebFlux) stacks, data access abstractions (JDBC, R2DBC, ORM, transactions), messaging (JMS, WebSocket, STOMP), caching, scheduling, testing infrastructure (TestContext framework, MockMvc, WebTestClient), and ahead-of-time (AOT) compilation support for GraalVM native images. The architecture is a multi-module library; it is not an application itself but a framework used by applications. Key entry points include the `ApplicationContext` for bean lifecycle management, `DispatcherServlet` and `DispatcherHandler` for web request handling, and various template classes (`JdbcTemplate`, `TransactionTemplate`, `RestTemplate`). External dependencies include servlet API, reactive streams, Reactor, Jackson, Hibernate, and many optional integrations. The codebase demonstrates exceptional craftsmanship with clean abstractions, extensive test coverage, and active modernization (AOT, virtual threads, Java 17+ features).

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 5 reusable components found
autofac/Autofac ★ 4658 846 APPLICATION

Autofac is a mature, production-grade Inversion of Control (IoC) container for .NET, providing dependency injection (DI) capabilities. The core library manages object lifetimes, service resolution, and dependency graphs through a fluent registration API and a pipeline-based resolution engine. It supports a wide range of features including constructor and property injection, decorators, open generics, assembly scanning, metadata, keyed services, and advanced lifetime scopes (singleton, per-scope, per-dependency, per-owned). The architecture is built around extensible middleware phases (scope selection, decoration, sharing, activation) and registration sources that dynamically provide services. Autofac is designed for high performance and AOT/trimming compatibility, with extensive benchmarks and a dedicated AOT verification workflow. It is a library, not an application; it is consumed by other .NET projects to manage their dependency injection needs.

RATING: 9.4/10 MAINT: active DRIFT: low
▸ 5 reusable components found
ets-labs/python-dependency-injector ★ 4917 353 APPLICATION

This repository is the **Dependency Injector** library for Python, a mature and widely-used dependency injection (DI) and inversion-of-control (IoC) framework. It provides a comprehensive set of provider types (Factory, Singleton, Resource, Configuration, etc.), declarative and dynamic containers for organizing providers, and a wiring mechanism that automatically injects dependencies into functions and methods using the `@inject` decorator and `Provide`/`Closing` markers. The library is designed to decouple application components, improve testability, and manage configuration and resource lifecycles in a structured way. The core implementation is written in Cython (`.pyx` files) for performance, with pure-Python fallbacks and type stubs. The architecture is modular: providers are composable building blocks, containers assemble them, and wiring connects them to application code. The library integrates with popular web frameworks (FastAPI, Flask, Django, Aiohttp, Sanic, Starlette) and supports both synchronous and asynchronous modes. It also includes a configuration provider that can load settings from YAML, JSON, INI, environment variables, Pydantic models, and plain dictionaries, with environment variable interpolation and type casting. Key entry points are the `Provider` hierarchy (e.g., `Factory`, `Singleton`, `Resource`), `DeclarativeContainer` and `DynamicContainer` classes, and the `inject` decorator from the wiring module. The library is primarily a development dependency used at build/import time to wire up application components. It has no runtime external dependencies beyond Python itself, though optional integrations (Flask, Aiohttp, etc.) require those frameworks. The extensive test suite and documentation make it a reliable choice for projects needing explicit dependency management.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
ray-di/Ray.Di ★ 202 37 APPLICATION

Ray.Di is a dependency injection and aspect-oriented programming (AOP) framework for PHP, inspired by Google Guice. It provides a module-based DI container that supports constructor, setter, and property injection via PHP 8 attributes, along with method interception for AOP cross-cutting concerns. The core architecture centers on AbstractModule for defining bindings, a Container for storing resolved dependencies, and an Injector that weaves aspects and manages object lifetimes (prototype/singleton). The framework supports advanced features like provider binding, contextual injection, multibinding (collections), assisted injection, null-object binding, and circular dependency detection. It includes a composition-time provenance log (BindingLog) for debugging binding precedence and produces a bindings.md diagnostics artifact. The codebase is mature and thoroughly tested (100% branch coverage), with extensive contract tests that pin observable semantics.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 5 reusable components found
zazoomauro/node-dependency-injection ★ 299 38 APPLICATION

This repository is a Node.js/TypeScript library for dependency injection (DI), heavily inspired by Symfony's DI container. It provides a service container that manages object construction, autowiring (automatic dependency resolution from constructor parameter types), and service configuration via YAML, JSON, JavaScript, and XML files. The library supports advanced features such as compiler passes, service decoration, tagged and keyed services, conditional service registration, lazy loading, and graph export. It includes a CLI tool for generating configurations and inspecting the container. The architecture follows a modular design: a ContainerBuilder manages definitions and compilation, loaders parse configuration files, and a compiler runs passes in ordered phases (optimization, removal, decoration). Autowiring uses TypeScript's AST (via @typescript-eslint/typescript-estree) to scan source files and register services automatically. The library also provides validation, graph export in multiple formats (JSON, Mermaid, DOT), and a condition evaluation system for environment-aware service registration. The codebase is well-structured with clear separation of concerns, extensive tests (both JavaScript and TypeScript), and demonstrates several design patterns (compiler pass, strategy for loaders/dumpers, reference objects, condition evaluation). However, the project appears unmaintained: the last CHANGELOG entry is from 2018, dependencies are outdated (e.g., commander v8, chalk v4, TypeScript 4.6.4), and the package.json version is 0.0.0. Despite its age, the core concepts remain relevant and the code quality is solid for a library of its kind.

RATING: 6.8/10 MAINT: stale DRIFT: medium
▸ 2 reusable components found
── end of results ──
$ submit: