基于 Go 语言的高性能 HTTP Web 框架,API 风格类似 Martini,适用于 REST API、Web 应用和微服务。
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
使用 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 数据每日更新。
相关项目
8.9万8777GoMIT更新于 12天前
基于 Go 标准库 net/http 构建的高性能、极简 Web 框架。
3.3万4917GoMIT更新于 10天前
受 Express 启发、基于 fasthttp 构建的 Go 语言 Web 框架,用于开发 REST API 和 Web 服务。
4万2054GoMIT更新于 3天前
基于 Spring 平台的 Java 框架,用于快速构建可投入生产的应用和服务,配置极简。
8.2万4.5万JavaApache-2.0更新于 20小时前
一个快速、易用、类 Flask 路由风格的 C++ 微框架,用于构建 HTTP 和 WebSocket 服务。
5009565C++Other更新于 3天前
基于 Django 构建 Web API 的工具包,提供序列化、认证、视图集和可浏览的 API 界面。
3万7091PythonOther更新于 前天