Repolode
go-chi

go-chi/chi

一个轻量、兼容 net/http 的 Go 路由库,用于构建 REST API 服务,支持中间件、路由分组和子路由挂载。

Star
22,981
Fork
3,717
未关闭 Issue
132
最近提交
4天前

这是什么?

chi 是一个用于 Go HTTP 服务的路由库。它把带有命名参数和通配符的 URL 模式映射到处理函数,基于标准库的 net/http 和 context 构建,因此任何为 net/http 编写的处理器或中间件都可以直接使用。核心路由代码很小,没有外部依赖。

路由支持可组合的中间件、单个路由上的内联中间件、路由分组,以及在指定路径前缀下挂载独立的子路由。这让大型 REST API 可以按模块拆分,各自拥有独立的中间件栈。请求级别的值、取消信号和超时通过请求上下文传递。

可选的 middleware 包提供请求 ID、日志、panic 恢复、压缩、限流、超时以及客户端 IP 识别等组件。配套包还覆盖 CORS、JWT 认证、速率限制,以及通过 docgen 生成路由文档。

核心功能

  • 01路由模式支持命名参数、正则参数和通配符
  • 02支持中间件栈、内联中间件和路由分组
  • 03支持在路径前缀下挂载子路由
  • 04与标准 net/http 的处理器和中间件完全兼容
  • 05内置 middleware 包,提供日志、异常恢复、压缩、超时等功能

适用场景

  • 用 Go 构建可长期维护的大型 REST API 服务
  • 把单体 HTTP 服务拆分为模块化的子路由
  • 为 Go 服务添加日志、认证、超时等标准中间件栈

快速上手

  1. 1

    使用 go get 安装 chi

    go get -u github.com/go-chi/chi/v5

标签

常见问题

chi 是什么?
一个轻量、兼容 net/http 的 Go 路由库,用于构建 REST API 服务,支持中间件、路由分组和子路由挂载。 chi 是一个用于 Go HTTP 服务的路由库。它把带有命名参数和通配符的 URL 模式映射到处理函数,基于标准库的 net/http 和 context 构建,因此任何为 net/http 编写的处理器或中间件都可以直接使用。核心路由代码很小,没有外部依赖。
chi 可以免费使用吗?用的什么许可证?
chi 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
chi 还在维护吗?
活跃维护中。chi 最近一次提交是在 2026年10月18日。
chi 适合用来做什么?
用 Go 构建可长期维护的大型 REST API 服务 把单体 HTTP 服务拆分为模块化的子路由 为 Go 服务添加日志、认证、超时等标准中间件栈
chi 怎么安装和运行?
使用 go get 安装 chi: go get -u github.com/go-chi/chi/v5
在哪里获取 chi?
源代码和安装说明在 GitHub 上:https://github.com/go-chi/chi

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目