Sobre el proyecto

chi es un enrutador ligero, idiomático y componible para crear servicios HTTP en Go, especialmente adecuado para grandes proyectos de API REST que necesitan mantenerse mantenibles a medida que crecen. Los principios de diseño clave incluyen la claridad de la estructura del proyecto, la mantenibilidad, el uso de manejadores estándar de net/http, la productividad del desarrollador y la capacidad de descomponer sistemas complejos en partes modulares más pequeñas. El enrutador principal tiene menos de 1000 líneas de código y no tiene dependencias externas más allá de la biblioteca estándar de Go. Está construido sobre el paquete context de Go (disponible desde Go 1.7) para valores con alcance de solicitud, señalización de cancelación y tiempos de espera a través de cadenas de manejadores. El enrutamiento admite parámetros de URL con nombre (por ejemplo, `/users/{userID}`), comodines (`/admin/*`), parámetros de expresiones regulares, grupos de rutas, subenrutadores y apilamiento de middleware. El enrutador utiliza internamente un trie radix Patricia. Un paquete de middleware opcional integral (`github.com/go-chi/chi/v5/middleware`) proporciona inyección de ID de solicitud, registro, recuperación de pánicos, manejo de tiempos de espera, detección de IP del cliente, limitación de velocidad, compresión, autenticación básica, aplicación del tipo de contenido, prevención de caché, integración con pprof y más. Cualquier middleware estándar de net/http también es compatible. Los paquetes relacionados en el ecosistema de chi incluyen cors, docgen (documentación automática de rutas), jwtauth (autenticación JWT), hostrouter (enrutamiento basado en dominio), httplog, httprate, httptracer, httpvcr y stampede (coalescencia de solicitudes HTTP). El proyecto se utiliza en producción por Pressly, Cloudflare, Heroku, 99Designs y otros. La versión v5 añadió soporte para la ruta de módulo go.mod.