Gin简介

作者: _Charmy | 来源:发表于2020-04-28 13:45 被阅读0次

介绍

Gin 是一个用 Go (Golang) 编写的 web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httprouter,速度提高了近 40 倍。 如果你是性能和高效的追求者, 你会爱上 Gin.

在本节中,我们将介绍 Gin 是什么,它解决了哪些问题,以及它如何帮助你的项目。

或者, 如果你已经准备在项目中使用 Gin,请访问快速入门.

特性

快速

基于 Radix 树的路由,小内存占用。没有反射。可预测的 API 性能。

支持中间件

传入的 HTTP 请求可以由一系列中间件和最终操作来处理。 例如:Logger,Authorization,GZIP,最终操作 DB。

Crash 处理

Gin 可以 catch 一个发生在 HTTP 请求中的 panic 并 recover 它。这样,你的服务器将始终可用。例如,你可以向 Sentry 报告这个 panic!

JSON 验证

Gin 可以解析并验证请求的 JSON,例如检查所需值的存在。

路由组

更好地组织路由。是否需要授权,不同的 API 版本…… 此外,这些组可以无限制地嵌套而不会降低性能。

错误管理

Gin 提供了一种方便的方法来收集 HTTP 请求期间发生的所有错误。最终,中间件可以将它们写入日志文件,数据库并通过网络发送。

内置渲染

Gin 为 JSON,XML 和 HTML 渲染提供了易于使用的 API。

可扩展性

基准测试

Gin 使用了自定义版本的 HttpRouter

查看所有基准测试

Benchmark name (1) (2) (3) (4)
BenchmarkGin_GithubAll 30000 48375 0 0
BenchmarkAce_GithubAll 10000 134059 13792 167
BenchmarkBear_GithubAll 5000 534445 86448 943
BenchmarkBeego_GithubAll 3000 592444 74705 812
BenchmarkBone_GithubAll 200 6957308 698784 8453
BenchmarkDenco_GithubAll 10000 158819 20224 167
BenchmarkEcho_GithubAll 10000 154700 6496 203
BenchmarkGocraftWeb_GithubAll 3000 570806 131656 1686
BenchmarkGoji_GithubAll 2000 818034 56112 334
BenchmarkGojiv2_GithubAll 2000 1213973 274768 3712
BenchmarkGoJsonRest_GithubAll 2000 785796 134371 2737
BenchmarkGoRestful_GithubAll 300 5238188 689672 4519
BenchmarkGorillaMux_GithubAll 100 10257726 211840 2272
BenchmarkHttpRouter_GithubAll 20000 105414 13792 167
BenchmarkHttpTreeMux_GithubAll 10000 319934 65856 671
BenchmarkKocha_GithubAll 10000 209442 23304 843
BenchmarkLARS_GithubAll 20000 62565 0 0
BenchmarkMacaron_GithubAll 2000 1161270 204194 2000
BenchmarkMartini_GithubAll 200 9991713 226549 2325
BenchmarkPat_GithubAll 200 5590793 1499568 27435
BenchmarkPossum_GithubAll 10000 319768 84448 609
BenchmarkR2router_GithubAll 10000 305134 77328 979
BenchmarkRivet_GithubAll 10000 132134 16272 167
BenchmarkTango_GithubAll 3000 552754 63826 1618
BenchmarkTigerTonic_GithubAll 1000 1439483 239104 5374
BenchmarkTraffic_GithubAll 100 11383067 2659329 21848
BenchmarkVulcan_GithubAll 5000 394253 19894 609
  • (1):在一定的时间内实现的总调用数,越高越好
  • (2):单次操作耗时(ns/op),越低越好
使用 Gin web 框架的知名项目:
  • gorush:Go 编写的通知推送服务器。

  • fnproject:原生容器,云 serverless 平台。

  • photoprism:由 Go 和 Google TensorFlow 提供支持的个人照片管理工具。

  • krakend:拥有中间件的超高性能 API 网关。

  • picfit:Go 编写的图像尺寸调整服务器。

  • gotify:使用实时 web socket 做消息收发的简单服务器。

  • cds:企业级持续交付和 DevOps 自动化开源平台。

【转自:https://gin-gonic.com/zh-cn/docs/

相关文章

  • Gin

    Iris、Gin、Beego Gin简介 https://gin-gonic.com/ Gin特点和特性 Gin环...

  • Gin简介

    介绍 Gin 是一个用 Go (Golang) 编写的 web 框架。 它是一个类似于 martini 但拥有更好...

  • 分享一波gin的路由算法分享

    [TOC] gin的路由算法分享 gin是什么呢? 我们在github上看看官方简介 Gin is a web f...

  • Gin 框架简介

    简介 Gin 是一个基于 Go 语言编写的 Web 框架,与 martini 框架类似,但拥有更好的性能,借助高性...

  • 04Gin源码解读

    简介 内置中间件的实现recoveryauthlogger errors 总结 简介 Gin 源码解读, 基于 v...

  • 【go语言学习】web开发框架gin

    一、gin简介 Gin 是一个用 Go (Golang) 编写的 HTTP web 框架。 它是一个类似于 mar...

  • Gin微服务框架_golang web框架_完整示例Demo

    Gin简介 Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,具有快速灵活,容错方便等...

  • 安装golang web框架 gin

    gin 地址https://github.com/gin-gonic/gin#installation 安装gin...

  • Golang 微框架 Gin 简介

    所谓框架 框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写...

  • Gin-安装

    Gin官方网站:https://gin-gonic.com/Gin官方文档:https://gin-gonic.c...

网友评论

      本文标题:Gin简介

      本文链接:https://www.haomeiwen.com/subject/bgyvwhtx.html