#golang#developers#bestpackages

10 bibliothèques Go que j'ai réellement utilisées

Des bibliothèques Go testées pour les API, CLI, la configuration, les tests et l’observabilité, avec leurs cas d’usage.

4 min de lecture
Résumé IA

Générez un résumé de cet article en un clic.

L'écosystème Go est volontairement plus petit que celui de JavaScript. C'est une force, mais au début on peut tout de même passer du temps à comparer des outils qui se recouvrent. Voici une sélection personnelle, issue de projets et de tests réels. Elle n'est pas une liste de bibliothèques “indispensables” : le bon choix dépend surtout de la complexité du projet et de ce que la bibliothèque apporte par rapport à la bibliothèque standard.

GORM gère les bases relationnelles (MySQL, PostgreSQL) avec un ORM, des migrations et des relations déclarées en Go. Je l'ai utilisé quand le gain de productivité justifiait d'ajouter une couche au-dessus de database/sql.

Gin reste un choix simple pour exposer une API HTTP. Gin ajoute le routing et les middlewares sans imposer une architecture complète ; c'est pratique pour un service court ou un microservice.

Echo offre une alternative proche, avec une API de middleware et de gestion des erreurs plus configurable. Echo vaut le test si tu veux garder la main sur le pipeline HTTP.

Viper centralise la configuration. Viper lit YAML, JSON et variables d'environnement ; je l'utilise quand plusieurs sources de configuration doivent être fusionnées.

Cobra structure une CLI et peut générer sa documentation. Cobra est utilisé par Kubernetes et Docker ; il est adapté dès que la commande possède plusieurs sous-commandes.

Gorilla Mux gère des routes dynamiques et des contraintes d'URL. Gorilla Mux peut convenir à un ancien service, mais je vérifie désormais son statut de maintenance avant de le choisir.

GoMobile permet d'embarquer du code Go dans des applications Android et iOS via golang.org/x/mobile. Il sert surtout à partager une bibliothèque métier entre ces plateformes.

GoKit fournit des briques pour les microservices : transport, découverte de service ou équilibrage. GoKit est modulaire ; tu peux sélectionner les composants réellement nécessaires.

GoConvey ajoute une interface de suivi et des assertions autour des tests Go. GoConvey peut aider quand tu veux visualiser une suite, même si le package testing suffit souvent.

Prometheus collecte des métriques et les expose pour l'alerting. Prometheus est utile pour suivre une production, à condition de définir quelques indicateurs qui répondent à une vraie question opérationnelle.

Fyne est une option pour une interface desktop Go qui tourne sur Windows, macOS et Linux. Fyne évite d'introduire une stack C++ ou web pour un outil de bureau simple.


Cette liste reflète un moment de mes projets, pas une vérité permanente. Depuis, certaines bibliothèques ont changé de statut ou sont moins nécessaires grâce aux évolutions de la bibliothèque standard. Avant d'en ajouter une, je regarde toujours sa maintenance, son API et le coût de sortie si le projet s'arrête.

Article co-écrit avec l'IA · Images générées avec l'IA.