mmerickel / wired

A service locator implementation for Python.
https://wired.readthedocs.io
MIT License
17 stars 9 forks source link

===== wired

.. image:: https://img.shields.io/pypi/v/wired.svg :target: https://pypi.org/pypi/wired

.. image:: https://github.com/mmerickel/wired/workflows/Build%20and%20test/badge.svg?branch=main :target: https://github.com/mmerickel/wired/actions?query=workflow%3A%22Build+and+test%22 :alt: main CI Status

.. image:: https://readthedocs.org/projects/wired/badge/?version=latest :target: https://readthedocs.org/projects/wired/?badge=latest :alt: Documentation Status

Have a large application where you want to decrease coupling between components? Need to supply configuration to your application's various services? Want to make a pluggable application where others can supply services?

Inversion of Control <https://en.wikipedia.org/wiki/Inversion_of_control>_ and Dependency Injection <https://en.wikipedia.org/wiki/Dependency_injection>_ are two patterns commonly used for these goals.

wired is an implementation of an inversion-of-control (IoC) container and may be used as the core of a dependency injection (DI) framework or simply as a way to separate config-time from runtime for services in an application. It also provides caching such that a container maintains a local copy of each service as they are instantiated.

wired aims to scale down to the simplest cases and up to very large, custom systems. It has one dependency and that dependency has one dependency.

See https://wired.readthedocs.io or docs/index.rst in this distribution for detailed documentation.