page contents

学习 Golang 开发,你需要掌握这几个开源框架

最近在学 Golang(Go语言),也在 Github 上找了一些基于 Golang 的优秀开源框架,在这里分享给大家。 一、Gin 框架(45.7k star) Gin 是一个用 Go (Golang) 编写的 HTTP web 框架。 它是...

attachments-2021-07-3QqPf7pQ60dd3100083e9.png

最近在学 Golang(Go语言),也在 Github 上找了一些基于 Golang 的优秀开源框架,在这里分享给大家。

一、Gin 框架(45.7k star)

Gin 是一个用 Go (Golang) 编写的 HTTP web 框架。 它是一个类似于 martini 但拥有更好性能的 API 框架, 优于 httprouter,速度提高了近 40 倍。

Gin 框架的特性:

  1. 支持中间件,传入的 HTTP 请求可以由一系列中间件和最终操作来处理,例如:Logger等。
  2. JSON 验证,Gin 可以解析并验证请求的 JSON,例如检查所需值的存在。
  3. 提供路由组,更好地组织路由。是否需要授权,不同的 API 版本…… 此外,这些组可以无限制地嵌套而不会降低性能。
  4. 内置渲染,Gin 为 JSON,XML 和 HTML 渲染提供了易于使用的 API。
  5. 错误管理方便,Gin 提供了一种方便的方法来收集 HTTP 请求期间发生的所有错误。最终,中间件可以将它们写入日志文件,数据库并通过网络发送。
  6. 基于 Radix 树的路由,小内存占用。没有反射。可预测的 API 性能,可扩展性好。

二、gorm 框架(22.8k star)

基于 Golang 开发的的 ORM 库。

gorm 框架的特性:

  1. 全功能 ORM
  2. 关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承)
  3. Create,Save,Update,Delete,Find 中钩子方法
  4. 支持 Preload、Joins 的预加载
  5. 事务,嵌套事务,Save Point,Rollback To Saved Point
  6. Context, Prepared Statement Mode, DryRun Mode
  7. 批量插入,FindInBatches,Find/Create with Map,使用 SQL 表达式、Context Valuer 进行 CRUD
  8. SQL 构建器,Upsert,数据库锁
  9. Optimizer/Index/Comment Hint,命名参数,子查询
  10. 复合主键,索引,约束
  11. Auto Migration
  12. 自定义 Logger
  13. 灵活的可扩展插件 API:Database Resolver(多数据库,读写分离)、Prometheus…

每个特性都经过了测试的重重考验

开发者友好

三、Viper 框架(14.7k star)

Viper 是一个适用于 Go 应用程序(包括12因子应用程序)的完整配置解决方案。它旨在在应用程序中工作,并且可以处理所有类型的配置需求和格式。

Viper 框架的特性:

  1. 设置默认值
  2. 从JSON,TOML,YAML,HCL,envfile和Java属性配置文件中读取
  3. 实时观看和重新读取配置文件(可选)
  4. 从环境变量中读取
  5. 从远程配置系统(etcd或Consul)中读取,并观察更改
  6. 从命令行标志读取
  7. 从缓冲区读取设置显式值

你可以将 Viper 视为满足您所有应用程序配置需求的注册表。

四、Go-MySQL-Driver 框架(10.5k star)

Go MySQL 驱动程序是 Golang 数据库、sql 包的 MySQL 驱动程序。

Go-MySQL-Driver 框架的特性:

  1. 轻巧快速
  2. 本机Go实施。没有C绑定,只有纯Go
  3. 通过TCP / IPv4,TCP / IPv6,Unix域套接字或自定义协议的连接
  4. 自动处理断开的连接
  5. 自动连接池(按数据库/ sql包)
  6. 支持大于16MB的查询
  7. 全面的sql.RawBytes支持
  8. 准备好的语句中的智能LONG DATA处理
  9. 通过文件允许列表和io.Reader支持来确保对LOAD DATA LOCAL INFILE的安全支持
  10. 可选时间,时间解析
  11. 可选的占位符插值

五、Go-Redis 框架(10.8k star)

用于 Golang 的类型安全的 Redis 客户端。

六、gin-swagger 框架(1.5k star)

基于 Gin 的中间件,以使用 Swagger 2.0 自动生成 RESTful API 文档。

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

程序员编程交流QQ群:805358732

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。

attachments-2022-06-G3eLP9re62ad3008dd1cc.jpeg

  • 发表于 2021-07-01 11:05
  • 阅读 ( 658 )
  • 分类:Golang

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1324 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章