python-dependency-injector/docs/introduction/key_features.rst
2020-09-03 13:36:56 -04:00

40 lines
1.4 KiB
ReStructuredText

Key features
------------
.. meta::
:keywords: Python,DI,Dependency injection,IoC,Inversion of Control
:description: This article describes key features of the Dependency Injector
framework.
``Dependency Injector`` is a dependency injection framework for Python. It takes the
responsibility of assembling your objects.
Key features of the ``Dependency Injector`` are:
- **Pythonic design**. Simple & explicit.
- **High performance**. Written in ``Cython``.
- **Maturity and production readiness**. Downloaded over 200.000 times a month.
It stands on two principles:
- **Explicit is better than implicit (PEP20)**.
- **Do not do any magic to your code**.
How is the ``Dependency Injector`` different from the other frameworks?
- **No autowiring.** The framework does NOT do any autowiring / autoresolving of the dependencies. You need to specify everything explicitly. Because *"Explicit is better than implicit" (PEP20)*.
- **Does not pollute your code.** Your application does NOT know and does NOT depend on the framework. No ``@inject`` decorators, annotations, patching or any other magic tricks.
In addition ``Dependency Injector`` is:
- Tested.
- Documented.
- Supported.
- Semantically versioned.
- Distributed as pre-compiled wheels.
The power of the ``Dependency Injector`` is in its straightforwardness. It is a simple tool for
the powerful concept.
.. disqus::