www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Aedi 0.1.0 release

reply Alexandru Ermicioi <alexandru.ermicioi gmail.com> writes:
Good day.

Aedi release 0.1.0 is available now.
Following changes from 0.0.1 have been made:
- Added annotation based configuration.
- Added additional logic in register based configuration, to 
handle composite containers.
- Added support for setting and auto-wiring of public fields, 
along with methods.
- Added factory method pattern to library.
- Added switchable container, that can be switched on and off (in 
offline mode no objects are served).
- Added a proof of concept implementation of proxy based 
container (though not working at the moment).
- Added and improved documentation.
- Added unittests, testing most of the code.
- Improved register based configuration handling of containers 
with simple data.
- Improved error reporting, when a method mismatch, or 
incompatibility with configuration occurs.
- Implemented support for struct construction and configuration 
(now di containers are - able to construct and wire them too).
- Updated examples to reflect new abilities.
- Removed Register struct from register based configuration, due 
to no need.

For the next release, planning to add:
- pre and post instantiation processing.
- fiddle with proxy based containers, that can serve proxy 
objects instead of real ones.
- probably, some sort of integration with vibed, and other 
libs/frameworks.

Project's repository: https://github.com/aermicioi/aedi
Project's documentation (check aedi package members for start): 
https://aermicioi.github.io/aedi/

Waiting for reviews, and bug reporting.
Jan 03
parent reply Chris Wright <dhasenan gmail.com> writes:
On Tue, 03 Jan 2017 11:47:44 +0000, Alexandru Ermicioi wrote:
 Aedi release 0.1.0 is available now.
This would be the perfect place to describe what Aedi is and why people might be interested in it.
Jan 03
parent Alexandru Ermicioi <alexandru.ermicioi gmail.com> writes:
On Tuesday, 3 January 2017 at 18:24:50 UTC, Chris Wright wrote:
 On Tue, 03 Jan 2017 11:47:44 +0000, Alexandru Ermicioi wrote:
 Aedi release 0.1.0 is available now.
This would be the perfect place to describe what Aedi is and why people might be interested in it.
It is a dependency injection library. Dependency injection libraries, usually are used at bootstrap stage of application, when application is creating and connecting all of it's components (objects, structs etc.). The process of wiring components between them, can be tedious and complex, in case when it is done manually. A DI library like Aedi, will take the task of creating and wiring components between them, instead of developer. It will wire them according to configuration, passed to it. The configuration itself can be done by code or by annotation for Aedi, and it is easier to write it, since the DI library will take the rest of work on itself.
Jan 04