gin

gin

快速高效的Go语言Web开发框架

Gin是一个基于Go语言的Web框架,具有高性能、零内存分配路由和简洁API等特点。它支持中间件、JSON验证、路由分组等功能,适合开发高效的Web应用。Gin提供多语言文档和丰富示例,方便开发者快速上手和学习。

GinGoWeb框架性能中间件Github开源项目

Gin Web 框架

<img align="right" width="159px" src="https://yellow-cdn.veclightyear.com/2b54e442/40b4c2f0-1fe7-4272-9cb2-0e1163cb4f26.png">

构建状态 代码覆盖率 Go 报告卡 Go 参考 Sourcegraph 开源助手 发布 待办事项

Gin 是一个用 Go 编写的 Web 框架。它具有类似于 martini 的 API,但性能最高可提升 40 倍,这要归功于 httprouter。如果你需要高性能和良好的生产力,你会喜欢上 Gin。

Gin 的主要特性包括:

  • 零内存分配的路由
  • 高速
  • 中间件支持
  • 崩溃恢复
  • JSON 验证
  • 路由分组
  • 错误管理
  • 内置渲染
  • 可扩展

入门

前提条件

Gin 需要 Go 版本 1.21 或更高版本。

获取 Gin

借助 Go 的模块支持,当你在代码中添加导入语句时,go [build|run|test] 会自动获取必要的依赖:

import "github.com/gin-gonic/gin"

或者,使用 go get

go get -u github.com/gin-gonic/gin

运行 Gin

一个基本示例:

package main import ( "net/http" "github.com/gin-gonic/gin" ) func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "message": "pong", }) }) r.Run() // 监听并在 0.0.0.0:8080 上提供服务(对于 Windows 是 "localhost:8080") }

要运行代码,使用 go run 命令,如:

$ go run example.go

然后在浏览器中访问 0.0.0.0:8080/ping 查看响应!

查看更多示例

快速入门

通过 Gin 快速入门 学习和实践,其中包含 API 示例和构建标签。

示例

Gin 示例 仓库中提供了许多现成的示例,展示了 Gin 的各种用例。

文档

查看 go.dev 上的 API 文档

文档也可在 gin-gonic.com 上以多种语言获取:

文章

基准测试

Gin 使用 HttpRouter 的自定义版本,查看所有基准测试

基准测试名称(1)(2)(3)(4)
BenchmarkGin_GithubAll4355027364 ns/op0 B/op0 allocs/op
BenchmarkAce_GithubAll4054329670 ns/op0 B/op0 allocs/op
BenchmarkAero_GithubAll5763220648 ns/op0 B/op0 allocs/op
BenchmarkBear_GithubAll9234216179 ns/op86448 B/op943 allocs/op
BenchmarkBeego_GithubAll7407243496 ns/op71456 B/op609 allocs/op
BenchmarkBone_GithubAll4202922835 ns/op720160 B/op8620 allocs/op
BenchmarkChi_GithubAll7620238331 ns/op87696 B/op609 allocs/op
BenchmarkDenco_GithubAll1835564494 ns/op20224 B/op167 allocs/op
BenchmarkEcho_GithubAll3125138479 ns/op0 B/op0 allocs/op
BenchmarkGocraftWeb_GithubAll4117300062 ns/op131656 B/op1686 allocs/op
BenchmarkGoji_GithubAll3274416158 ns/op56112 B/op334 allocs/op
BenchmarkGojiv2_GithubAll1402870518 ns/op352720 B/op4321 allocs/op
BenchmarkGoJsonRest_GithubAll2976401507 ns/op134371 B/op2737 allocs/op
BenchmarkGoRestful_GithubAll4102913158 ns/op910144 B/op2938 allocs/op
BenchmarkGorillaMux_GithubAll3463384987 ns/op251650 B/op1994 allocs/op
BenchmarkGowwwRouter_GithubAll10000143025 ns/op72144 B/op501 allocs/op
BenchmarkHttpRouter_GithubAll5593821360 ns/op0 B/op0 allocs/op
BenchmarkHttpTreeMux_GithubAll10000153944 ns/op65856 B/op671 allocs/op
BenchmarkKocha_GithubAll10000106315 ns/op23304 B/op843 allocs/op
BenchmarkLARS_GithubAll4777925084 ns/op0 B/op0 allocs/op
BenchmarkMacaron_GithubAll3266371907 ns/op149409 B/op1624 allocs/op
BenchmarkMartini_GithubAll3313444706 ns/op226551 B/op2325 allocs/op
BenchmarkPat_GithubAll2734381818 ns/op1483152 B/op26963 allocs/op
BenchmarkPossum_GithubAll10000164367 ns/op84448 B/op609 allocs/op
BenchmarkR2router_GithubAll10000160220 ns/op77328 B/op979 allocs/op
BenchmarkRivet_GithubAll1462582453 ns/op16272 B/op167 allocs/op
BenchmarkTango_GithubAll6255279611 ns/op63826 B/op1618 allocs/op
BenchmarkTigerTonic_GithubAll2008687874 ns/op193856 B/op4474 allocs/op
BenchmarkTraffic_GithubAll3553478508 ns/op820744 B/op14114 allocs/op
BenchmarkVulcan_GithubAll6885193333 ns/op19894 B/op609 allocs/op
  • (1):在恒定时间内达到的总重复次数,越高表示结果越可靠
  • (2):单次重复持续时间(ns/op),越低越好
  • (3):堆内存(B/op),越低越好
  • (4):每次重复的平均分配次数(allocs/op),越低越好

中间件

你可以在 gin-contrib 找到许多有用的 Gin 中间件。

使用案例

以下是一些使用 Gin Web 框架的优秀项目。

  • gorush:一个推送通知服务器。
  • fnproject:一个容器原生、云无关的无服务器平台。
  • photoprism:由 Google TensorFlow 驱动的个人照片管理工具。
  • lura:具有中间件功能的超高性能 API 网关。
  • picfit:图像调整服务器。
  • dkron:分布式、容错的任务调度系统。

贡献

Gin 是数百名贡献者的工作成果。我们感谢你的帮助!

请查看 CONTRIBUTING.md 了解提交补丁和贡献工作流程的详细信息。

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多