{"categories":[{"label":"Software Development","url":"https://skillfed.io/packages/category/software-development/2"},{"label":"Libraries","url":"https://skillfed.io/packages/category/software-development-libraries/2"},{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/3"}],"enrichment":{"capability":"Dependency Injector is a dependency injection framework that assembles and injects object dependencies into functions and methods, supporting factories, singletons, configuration providers, and async injection.","skillfed_tags":["dependency-injection","inversion-of-control","testing"],"use_cases":["Organize Flask or FastAPI applications by declaring all services (database, cache, API clients) in a container and injecting them into route handlers","Replace real API clients with mocks during testing by overriding providers without changing application code","Manage configuration across dev, stage, and production environments by reading from different sources and swapping implementations","Initialize and manage resources like database connections, thread pools, or event loops with automatic cleanup","Build decoupled multi-package applications where each package defines its own container and dependencies"],"what_it_does":"Dependency Injector is a framework that centralizes how your application assembles and injects object dependencies. Instead of scattering object creation and wiring throughout your code, you declare all components and their relationships in a container, then use decorators or explicit calls to inject them where needed. This makes testing easier (you can override components with mocks), configuration cleaner (read from yaml, json, ini, environment, or pydantic), and the dependency graph explicit and auditable.\n\nThe framework provides multiple provider types\u2014Factory for creating new instances, Singleton for shared instances, Configuration for settings, Resource for lifecycle management (logging, event loops, thread pools), and Callable/Coroutine for wrapping functions. It integrates with Django, Flask, FastAPI, Aiohttp, and other frameworks via a wiring system that automatically injects dependencies into decorated functions and methods. Written in Cython for performance, it supports both synchronous and asynchronous injection and includes mypy-friendly typing stubs.","worth_installing":"Yes. Dependency Injector is a mature, actively maintained framework (4907 stars, release 57 days ago, production-stable classifier) with zero known vulnerabilities, permissive licensing, and broad platform support. Install friction is moderate due to Cython compilation but well-mitigated by pre-built wheels. It is worth installing if you want explicit, testable dependency management in a non-trivial application; less essential for simple scripts or if you prefer implicit dependency resolution."},"id":"dependency-injector","links":{"html":"https://skillfed.io/packages/dependency-injector","md":"https://skillfed.io/packages/dependency-injector.md","pypi":"https://pypi.org/project/dependency-injector/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-06-18","license_spdx":null,"license_treatment":"permissive","name":"dependency-injector","python_support":"supports_current","summary":"Dependency injection framework for Python"},"popularity":{"monthly_downloads":8389683,"position":1628,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"4.49.1"}
