chi 是一个轻量级可组合的 router,用于构建 Go HTTP 服务,支持 Go 1.7+。它特别擅长帮助编写大型 REST API 服务,这些服务随着项目的增长和变化而保持可维护性。chi 基于 Go 1.7 中引入的新 context 包,用于处理 handler 链中的信令、取消和请求范围值。
chi 的设计的关键考虑因素是:项目结构、可维护性、标准 http 处理程序(仅限 stdlib)、开发人员生产力以及将大型系统解构为许多小部件。
特性:
轻量 - 核心代码小于 1000 行
快 - benchmarks
完全兼容 net/http
模块化/可组合 API 设计
Context 控制 - 基于 Go 1.7 中引入的新 context 包,用于处理 handler 链中的信令、取消和请求范围值
健壮性 - 生产应用于 Pressly、CloudFlare、Heroku、99Designs 等公司(see discussion)
文档生成 - docgen 自动生成从源到 JSON 或 Markdown 的路由文档
无外部依赖