À propos du projet
VContainer est une bibliothèque d'injection de dépendances (DI) haute performance conçue spécifiquement pour le moteur de jeu Unity. Elle met l'accent sur la vitesse, une allocation mémoire minimale et une taille de code réduite, ce qui en fait une alternative efficace à d'autres frameworks DI comme Zenject.
Les fonctionnalités principales incluent :
- **Résolution rapide :** Généralement 5 à 10 fois plus rapide que Zenject.
- **Allocation GC nulle :** La résolution des instances n'entraîne aucun surcoût de collecte des ordures (à l'exception des instances créées).
- **Taille de code réduite :** Peu de types internes et appels virtuels minimaux.
- **Bonnes pratiques DI :** API simple et transparente avec des fonctionnalités soigneusement sélectionnées pour éviter la complexité.
- **Conteneur immuable :** Garantit la sécurité des threads et la robustesse.
Les types d'injection pris en charge sont : l'injection par constructeur, par méthode, par propriété et par champ. Elle offre également un scoping flexible avec des étendues de durée de vie imbriquées, la prise en charge asynchrone et l'intégration avec UniTask et ECS (bêta).
L'installation est disponible via UPM (URL Git), OpenUPM ou un .unitypackage manuel. La bibliothèque nécessite Unity 2018.4 ou une version ultérieure.
L'utilisation de base consiste à créer un LifetimeScope, à enregistrer des services, puis à les résoudre automatiquement. La bibliothèque prend en charge les liaisons par clé, les points d'entrée (IStartable, IAsyncStartable) et la création dynamique d'étendues d'enfants pour le chargement asynchrone des ressources.
Une fenêtre de diagnostic dans l'éditeur Unity aide à visualiser et à déboguer les enregistrements et les dépendances du conteneur.
VContainer s'inspire de Zenject, Autofac et MicroResolver, et est publiée sous licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.