XUtils

Poodinis

A dependency injection framework for D with support for autowiring.


Features

  • Member injection: Injection of dependencies in class members of any visibility (public, private, etc.)
  • Constructor injection: Automatic injection of dependencies in class constructors on creation.
  • Value injection: Value-types such as primitives or structs can be injected using custom value injectors.
  • Type qualifiers: Inject concrete types into members defined only by abstract types.
  • Application contexts: Control the creation of dependencies manually through factory methods.
  • Multi-threadable: Dependency containers return the same dependencies across all threads.
  • Minimal set-up: Creation and injection of conventional classes requires almost no manual dependency configuration.
  • Well-tested: Developed test-driven, a great number of scenarios are tested as part of the test suite.

See the TUTORIAL.md and examples for a complete walkthrough of all features.

Getting started

DUB Dependency

See the Poodinis [DUB project page] for instructions on how to include Poodinis into your project.

Documentation

You can find the public API documentation here.

Alternatively you can generate documentation from the source code using DUB:

dub build --build=ddox

The documentation can then be found in docs/

History

For a full overview of changes, see CHANGES.md

Value Injectors

Poodinis doesn’t come with implementations of value injectors. Value injectors are available in separate projects:

Have you made any or do you know of any? Please add them to this section via a pull request or open an issue.

Projects Using Poodinis

  • Hunt Framework: A Web framework for D Programming Language. Full-stack high-performance.
  • Eloquent: A lightweight web application written in D
  • ioc: Slow approach to Inversion of Control in D2 language

Future Work

  • Component scan (auto-registration)
  • Phobos collections autowiring
  • Named qualifiers

Articles

  • coming soon...