À propos du projet
chi est un routeur léger, idiomatique et composable pour créer des services HTTP en Go, particulièrement adapté aux grands projets d'API REST qui doivent rester maintenables à mesure qu'ils se développent.
Les principes de conception clés incluent la clarté de la structure du projet, la maintenabilité, l'utilisation des gestionnaires net/http standard, la productivité des développeurs et la capacité à décomposer des systèmes complexes en parties modulaires plus petites.
Le routeur principal fait moins de 1000 lignes de code et n'a aucune dépendance externe en dehors de la bibliothèque standard Go. Il est construit sur le package context de Go (disponible depuis Go 1.7) pour les valeurs liées à la requête, la signalisation d'annulation et les délais d'attente à travers les chaînes de gestionnaires.
Le routage prend en charge les paramètres d'URL nommés (par exemple, `/users/{userID}`), les jokers (`/admin/*`), les paramètres d'expression régulière, les groupes de routes, les sous-routeurs et l'empilement de middlewares. Le routeur utilise en interne un trie radix Patricia.
Un package de middlewares optionnel complet (`github.com/go-chi/chi/v5/middleware`) fournit l'injection d'ID de requête, la journalisation, la récupération après panique, la gestion des délais d'attente, la détection de l'IP client, la limitation de débit, la compression, l'authentification basique, l'application du type de contenu, la prévention du cache, l'intégration pprof, et plus encore. Tout middleware net/http standard est également compatible.
Les packages associés dans l'écosystème chi incluent cors, docgen (documentation automatique des routes), jwtauth (authentification JWT), hostrouter (routage basé sur le domaine), httplog, httprate, httptracer, httpvcr et stampede (coalescence de requêtes HTTP).
Le projet est utilisé en production par Pressly, Cloudflare, Heroku, 99Designs, et d'autres. La v5 a ajouté la prise en charge du chemin de module go.mod.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.