{"repo":"PereViader/ManualDi","free":true,"listed":false,"github":"https://github.com/PereViader/ManualDi","clone":"git clone https://github.com/PereViader/ManualDi.git","description":"Fast and extensible C# dependency injection library without reflection. Works seamlessly in both Unity3d and plain C# projects","language":"C#","stars":69,"topics":["csharp","dependency-injection","dotnet","unity3d","unity3d-plugin","ioc","ioc-container","dependency-injection-container"],"license":"MIT","category":"game-templates","readme_excerpt":"Welcome to ManualDi – a fast and extensible C# dependency injection library - Unified API to create, inject, initialize and startup the application. - Focuses on reducing boilerplate - Synchronous and asynchronous library variants. - Supercharge the container with tailored extensions for your application. - Source generation, no reflection - Faster and more memory efficient than most other dependency injection containers. - Seamless Unity3D game engine integration. Benchmark and Comparison BenchmarkDotNet Sync and Async benchmarks between Microsoft and ManualDi Unity3d Sync and Async benchmarks between Zenject, VContainer, Reflex and ManualDi - Zenject performance measured with Reflection Baking enabled - VContainer performance measured with source generation enabled - Performance measured on a windows standalone build ManualDi.Sync ManualDi.Async Reflex VContainer Zenject --------------------------------- :-------------------------: :--------------: :--------------------: :-------------------------------: :-------------------------------: Lifetimes Single Transient (1) Single (2) Single Transient Single Transient Scoped Single Transient Scoped Runtime (lower is better) 0.11 0.16 0.15 0.36 1 Memory (lower is better) 0.12 0.14 0.21 0.59 1 Object Injection ✅ ✅ ✅ ✅ ✅ Scopes ✅ ✅ ✅ ✅ ✅ Resolution During Installation ✅ ✅ ✅ ❌ ❌ Object Initialization ✅ ✅ ❌ ❌ ❌ Object Lifecycle Hooks ✅ ✅ ❌ ❌ ❌ Startup Hooks ✅ ✅ ❌ ❌ ❌ Lazy ❌ (3) ❌ (3) ✅ ❌ ✅ Avoids Reflection ✅ ✅ ❌ (4) ❌ (4) ❌ (4) This ","default_branch":null,"files":null,"tree":[],"storefront":"/r/PereViader","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/PereViader/ManualDi/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}