Go Doc Build Status Go Report Code Coverage Production Ready License

GF(Go Frame)是一款模块化、高性能、生产级的Go基础开发框架。实现了比较完善的基础设施建设以及开发工具链,提供了常用的基础开发模块,如:缓存、日志、队列、数组、集合、容器、定时器、命令行、内存锁、对象池、配置管理、资源管理、数据校验、数据编码、定时任务、数据库ORM、TCP/UDP组件、进程管理/通信等等。并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、Middleware、服务注册、模板引擎等等,支持热重启、热更新、域名绑定、TLS/HTTPS、Rewrite等特性。

如果您初识Go语言,您可以将GoFrame类似于PHP中的Laravel, Java中的SpringBoot或者Python中的Django

特点

地址

安装

go get -u -v github.com/gogf/gf

推荐使用 go.mod:

require github.com/gogf/gf latest

限制

golang版本 >= 1.11

架构

模块

  1. 核心模块

    GoFrame提供了一些基础的、常用的模块,简单、易用和轻量级,并保持极少的外部依赖,这些模块由gf主仓库细致维护。

  2. 社区模块

    社区模块主要由社区贡献并维护,大部分也是由gf主仓库的贡献者提供及维护,存放于gogf空间下,与gf主仓库处于同一级别。有的社区模块是从gf主仓库中剥离出来单独维护的模块,这些模块并不是特别常用,或者对外部依赖较重。

性能

以下是目前最流行的WEB Server Golang框架/类库性能测试结果。 性能测试用例源代码仓库: https://github.com/gogf/gf-performance

环境:

OS   : Ubuntu 18.04 amd64
CPU  : AMD A8-6600K x 4
MEM  : 32GB
GO   : v1.13.4

工具

ab: Apache HTTP server benchmarking tool.

测试命令:

ab -t 10 -c 100 http://127.0.0.1:3000/hello
ab -t 10 -c 100 http://127.0.0.1:3000/query?id=10000
ab -t 10 -c 100 http://127.0.0.1:3000/json

并发客户端数量从 100 递增到 10000

每个项目的每个用例均运行5次,取最优的结果展示。

1. Hello World

ThroughputsMean LatencyP99 Latency

2. Json Response

ThroughputsMean LatencyP99 Latency

帮助

建议通过阅读GoFrame的源码以及API文档深度学习GoFrame,了解更多的精妙设计。

协议

GF 使用非常友好的 MIT 开源协议进行发布,永久100%开源免费。

用户

在这里只列举了部分知名的用户,如果您的企业或者产品正在使用GoFrame,欢迎到 这里 留言。

贡献

感谢所有参与GoFrame开发的贡献者。 [贡献者列表].

捐赠

如果您喜欢GF,要不给开发者来杯咖啡吧! 请在捐赠时备注您的github/gitee账号名称。

赞助

赞助支持GF框架的快速研发,如果您感兴趣,请联系 微信 389961817 / 邮件 john@goframe.org

感谢

JetBrains