Key featuresΒΆ

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.