Resources Go

Une liste de resources, articles, librairies pour le développement en Go. Nous les avons testés et implémentés et avons validé leur intérêt. Ce post sera mis à jour au fur et à mesure.

[NDLR] Quand on aborde une problématique (parsing de json, sécurité...) il y a plusieurs approches possibles qui dépendent du contexte :

  • vous codez directement la solution, si possible en s'appuyant sur des patterns de programmation : cela à l'avantage de garder votre code concis et minime en ne répondant qu'à votre problématique et vous facilite les optimisations éventuelles; à contrario vous réinventez la roue et pour des algos plus complexes peut être moins optimal qu'une lib développée par une équipe le ferait.
  • vous utilisez une librairie externe : cela à l'avantage de traiter plus de cas d'usages en une fois (quand la lib a été éprouvée) mais à l'inconvénient d'ajouter des dépendances et augmente la taille de vos projets.

Lib pour gérer les paramètres de ligne de commande mais oblige à suivre leur paradigme. De nombreux gros projets l'utilisent (docker, kubernetes, istio...)
- https://github.com/spf13/cobra

Lib pour charger facilement des paramètres d'un fichier de config
- https://github.com/joho/godotenv

Lib pour traiter le JSon plus facilement et sans créer de struc:
- https://github.com/valyala/fastjson

Lib pour consommer des APIs REST, resty :
- https://github.com/go-resty/resty

Lib qui implemente les principaux patterns de messaging (pub/sub, req/rep, push/pull...):
- https://github.com/nanomsg/mangos

Lib pour implémenter un réseau P2P:
- https://github.com/libp2p/go-libp2p

Lib pour construire des microservices (ou de jolis monoliths) :
- https://gokit.io/

Framework de site web en go :
- https://gobuffalo.io/fr

Framework de tests de validation :
- https://agouti.org/