Key features ------------ .. meta:: :keywords: Python,DI,Dependency injection,IoC,Inversion of Control :description: This article describes key features of "Dependency Injector" framework. It also provides some cases and recommendations about usage of "Dependency Injector" framework. ``Dependency Injector`` is a dependency injection framework for Python. It was designed to be a unified and developer-friendly tool that helps implement a dependency injection design pattern in a formal, pretty, and Pythonic way. The key features of the ``Dependency Injector`` framework are: + Easy, smart, and Pythonic style. + Does NOT pollute client code. + Obvious and clear structure. + Extensibility and flexibility. + High performance. + Memory efficiency. + Thread safety. + Documented. + Semantically versioned. + Distributed as pre-compiled wheels. ``Dependency Injector`` containers and providers are implemented as C extension types using ``Cython``. ``Dependency Injector`` framework can be used in the different application types: + Web applications based on the ``Flask``, ``Django`` or any other web framework. + Asynchronous applications ``asyncio``, ``aiohttp``, ``Tornado``, or ``Twisted``. + Standalone frameworks and libraries. + GUI applications. ``Dependency Injector`` framework can be integrated on the different project stages: + It can be used in the beginning of the development of a new application. + It can be integrated into application that is on its active development stage. + It can be used for refactoring of legacy application. Components of ``Dependency Injector`` framework could be used: + In composition with each other. + Independently from each other. .. disqus::