...
GoFrame | Beego | Iris | Gin | |
---|---|---|---|---|
比较版本 | v1.15.2 | v1.12.3 | v12.0.2 | v1.6.3 |
项目类型 | 开源(国内) | 开源(国内) | 开源(海外) | 开源(海外) |
开源协议 | MIT | Apache-2 | BSD-3-Clause | MIT |
框架类型 | 模块化框架 | Web框架 | Web"框架" | Web"框架" |
基本介绍 | 工程完备、简单易用,模块化、高质量、高性能、企业级开发框架。 | 最简单易用的企业级Go应用开发框架。 | 目前发展最快的Go Web框架。提供完整的MVC功能并且面向未来。 | 一个Go语言写的HTTP Web框架。它提供了Martini风格的API并有更好的性能。 |
项目地址 | github.com/beego/beego | github.com/kataras/iris | github.com/gin-gonic/gin | |
官网地址 | goframe.org | beego.me | iris-go.com | gin-gonic.com |
模块化设计 | 是 | - | - | - |
模块完善度 | 10 | 6 | 4 | 2 |
使用易用性 | 9 | 9 | 9 | 10 |
文档完善度 | 10 | 8 | 6 | 4 |
工程化完备 | 10 | 8 | 5 | 1 |
社区活跃 | 9 | 10 | 9 | 10 |
开发模式 | 模块引入、三层架构、MVC | MVC | MVC | - |
工程规范 | 分层设计、对象设计 | 项目结构 | - | - |
开发工具链 | gf工具链 | bee工具链 | - | - |
Web: 性能测试 | 8 | 8 | 8 | 9 |
Web: HTTPS | HTTPS & TLS | 支持 | CustomHttpConfiguration | 支持 |
Web: HTTP2 | - | - | 支持 | 支持 |
Web: WebSocket | WebSocket服务 | 有 | 有 | - |
Web: 分组路由 | 路由注册-分组路由 | Namespace | GroupingRoutes | 有 |
Web: 路由冲突处理 | 有 | - | 有 | - |
Web: 域名支持 | 域名绑定 | - | - | - |
Web: 文件服务 | 静态文件服务 | 静态文件处理 | ServingStaticFiles | 有 |
Web: 多端口/实例 | 多端口监听、多实例监听 | - | RunMultipleServiceUsingIris | - |
Web: 优雅重启/关闭 | 平滑重启特性 | 热升级 | GracefulShutdownOrRestart | GracefulRestartOrStop |
ORM | ORM文档 | ORM文档 | - | - |
Session | Session | Session | 有 | - |
I18N支持 | I18N | I18N | Localization | - |
模板引擎 | 模板引擎 | View设计 | TemplateRendering | HtmlRendering |
配置管理 | 配置管理 | 参数配置 | - | CustomHttpConfig |
日志组件 | 日志组件 | Logging | - | - |
数据校验 | 数据校验 | 表单数据验证 | - | CustomValidators |
缓存管理 | 缓存管理 | Cache | - | - |
资源打包 | 资源管理 | bee工具bale命令 | - | - |
链路跟踪 | 服务链路跟踪 | - | - | - |
测试框架 | 单元测试 | - | Testing | Testing |
突出优点 | goframe主要以工程化和企业级方向为主,特别是模块化设计和工程化设计思想非常棒。针对业务项目而言,提供了开发规范、项目规范、命名规范、设计模式、开发工具链、丰富的模块、高质量代码和文档,社区活跃。作者也是资深的PHP开发者,PHP转Go的小伙伴会倍感亲切。 | beego开源的比较早,最早的一款功能比较全面的Golang开发框架,一直在Golang领域有着比较大的影响力,作者谢大多年组织着国内影响力比较大GopherCN活动。beego有着比较丰富的开发模块、开箱即用,提供了基于MVC设计模式的项目结构、开发工具链,主要定位为Web开发,当然也可以用于非Web项目开发。 | iris主要侧重于Web开发,提供了Web开发的一系列功能组件,基于MVC开发模式。iris这一年发展比较快,从一个Web Server的组件,也慢慢朝着beego的设计方向努力。 | gin专注于轻量级的Web Server,比较简单,易于理解,路由和中间件设计不错,可以看做替代标准库net/http.Server的路由加强版web server。献给爱造轮子的朋友们。 |
突出缺点 | 开源时间较晚,推广过于佛系,目前主要面向国内用户,未推广海外。 | 起步较早,自谢大创业后,近几年发展较慢。非模块化设计,对第三方重量级模块依赖较多。 | 号称性能最强,结果平平。非模块化设计。最近两年开始朝beego方向发展,但整体框架能力还不完备,需要加油。 | 功能简单易用,既是优点,也是缺点。 |
...