Injection de dépendances Go

L'injection de dépendances en Go est souvent réalisée au cas par cas. Seuls les projets complexes ou volumineux utilisent les références du genre, que sont google/wire et uber-go/dig. Mais ces outils sont complexes en interne comme à l'utilisation.

Pour des projets plus simples comme les micro-services, voici IziDIC, un micro-conteneur Open Source d'injection de dépendances sans magie, sans réflexion, sans génération de code, et capable d'organiser paramètres et services. Découvrez-le sur https://github.com/fgm/izidic. Tous les retours sont bienvenus !

IziDIC permet aux développeurs d'application de stocker aussi bien les paramètres que les services, et les instancie uniquement à l'utilisation, évitant la surcharge CPU/mémoire liée aux services activés mais non consommés, fréquents avec Wire ou Dig/Fx.

L'API en quelques examples:

  • Stocker un paramètre: dic.Store("name", value)
  • Le relire: dic.MustParam('"name")
  • Définir un service: dic.Register("name", serviceFn)
  • Obtenir une instance de service dic.MustService("name")

Pour plus de détails, voir la documentation