基于 Go 的 Web 框架调研
概述
调研总体目标
找出适合企业应用后台研发的 Go Web 框架
调研考察方向
-
项目完善程度:
- 功能完善: 路由, 模板, 插件/扩展, ORM, 命令行工具, 日志, 国际化支持, 测试集成功能
- 扩展机制是否便捷, 扩展相关生态是否活跃(可选扩展模块)
- 是否有独有的功能/特性
- 文档是否完善 (判断标准: 是否与版本相关? 最近更新时间? 中文文档?)
- 测试完善度 (测试覆盖率等)
-
项目活跃度:
- 近期发布版本: 是否半年内, 至少是一年内? 最近一年是否有 2+ 次正式版本?
- 社区活跃度:
- 代码贡献人数
- issue 情况, 提问质量及解决情况
- 中文社区, 或者中文使用者
-
项目发展情况:
- 人员支持稳定性: 主要贡献人是否有独立公司/稳定技术人员, 是否大公司支持
- 是否有稳定/明确的版本计划和路线图
- 总应用实例数-参考
Go Web 框架情况对比
候选框架
项目完善程度
功能对比
考察方向 |
功能/特性 |
Gin |
Echo |
Martini |
Go Buffalo |
Revel |
Beego |
GoFrame |
功能 |
url路由配置 |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
功能 |
cookie/session |
Yes |
Yes |
Yes(3rd) |
Yes |
Yes |
Yes |
Yes |
功能 |
请求-绑定(data binding) |
Yes |
Yes |
Yes(3rd) |
Yes |
Yes |
Yes |
Yes |
功能 |
请求-校验(validator) |
Yes |
Yes |
Yes(3rd) |
Yes |
Yes |
Yes |
Yes |
功能 |
数据库-orm |
No |
No |
No |
Yes |
No |
Yes |
Yes |
功能 |
日志组件 |
Yes |
Yes |
Yes(3rd) |
Yes |
Yes |
Yes |
Yes |
功能 |
静态文件访问 |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
功能 |
模板 |
Yes |
Yes |
Yes(3rd) |
Yes |
Yes |
Yes |
Yes |
功能 |
测试组件 |
Yes |
Yes |
No |
Yes |
Yes |
No(有文档参考) |
Yes |
功能 |
支持中间件 |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
功能 |
组件自定义/替换? |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes(部分) |
Yes(部分) |
功能 |
命令行工具 |
No |
No |
No |
Yes |
Yes |
Yes |
Yes |
功能 |
支持 HTTP2 |
Yes |
Yes |
No |
Yes |
No |
No |
No |
功能 |
特色功能 |
/ |
/ |
/ |
热加载 , 后台任务 , 命令扩展-插件 等 |
热加载 等 |
自带监控工具 等 |
/ |
项目测试情况 |
覆盖率 |
98% |
84% |
/ |
/ |
/ |
/ |
72% |
项目支持 |
是否有官方网站 |
Yes |
Yes |
No |
Yes |
Yes |
Yes |
Yes |
项目支持 |
文档-是否有官方文档 |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
项目支持 |
文档-是否有中文文档 |
Yes |
No |
Yes |
No |
No |
Yes |
Yes |
项目支持 |
是否有专门社区 |
No |
Yes |
Yes |
No (stackoverflow) |
No |
Yes |
No |
项目支持 |
是否有官方群、聊天社区 |
gitter.im |
Twitter/gitter.im
|
No |
slack |
gitter.im |
多种 |
Yes(QQ,微信,Github Issue) |
项目支持 |
是否有中文社区 |
No |
No |
No |
No |
No |
Yes |
No |
项目许可 |
许可协议类型 |
MIT |
MIT |
MIT |
MIT |
MIT |
Apache 2.0 |
MIT |
项目活跃度 |
最近版本 |
v1.4.0 (2019-05-08) |
v4.1.11 (2019-10-07) |
v1.0 (2014-05-20) |
v0.15.1 (2019-11-21) |
v0.21.0(2018-10-30) |
v1.10.0(2018-07-21) |
v1.9.10(2019-10-24) |
项目活跃度 |
近半年版本数(含非 release 版本) |
0 |
6 |
0 |
19 |
0 |
0 |
17 |
项目活跃度 |
issue closed |
1095 |
893 |
210 |
694 |
831 |
1894 |
231 |
项目活跃度 |
issue open |
179 |
27 |
4 |
54 |
80 |
731 |
82 |
项目活跃度 |
fork 数目 |
3.8 k |
1.4 k |
1.1 k |
411 |
1.4 k |
4.6 k |
287 |
项目活跃度 |
过去1月 merged pr |
7 |
4 |
0 |
14 |
0 |
1 |
1 |
项目活跃度 |
过去1月 proposed pr |
7 |
9 |
0 |
3 |
0 |
4 |
1 |
项目活跃度 |
过去1月 new issue |
16 |
6 |
0 |
7 |
3 |
19 |
21 |
项目活跃度 |
过去1月 closed issue |
20 |
14 |
0 |
12 |
1 |
3 |
10 |
项目发展情况 |
业界应用数 |
7.2k+ |
2.9k+ |
/ |
/ |
/ |
有较多名企(华为/360/有道/微博/京东/腾讯 等) |
/ |
项目发展情况 |
是否有发展规划/Roadmap |
No |
No |
No |
No |
No |
No |
No |
项目发展情况 |
人员构成-主力开发 |
4 |
2人 (其中1人是咨询) |
1 (gin作者) |
10 |
7 |
4 |
1 |
项目发展情况 |
contributor 数目 |
240 |
149 |
94 |
135 |
125 |
304 |
22 |
项目发展情况 |
是否有公司赞助/支持 |
No |
No |
No |
Yes (3) |
No |
No |
No |
|
请发表评论