框架介绍 - 图1

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

特点

  • 模块化、松耦合设计;
  • 模块丰富、开箱即用;
  • 简便易用、易于维护;
  • 高代码质量、高单元测试覆盖率;
  • 社区活跃,大牛谦逊低调脾气好;
  • 详尽的开发文档及示例;
  • 完善的本地中文化支持;
  • 设计为团队及企业使用;

地址

安装

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

推荐使用 go.mod:

  1. require github.com/gogf/gf latest

限制

  1. golang版本 >= 1.11

模块

  1. 核心模块

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

  2. 社区模块

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

架构

框架介绍 - 图8

性能

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

环境:

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

工具

ab: Apache HTTP server benchmarking tool.

测试命令:

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

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

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

1. Hello World

Throughputs Mean Latency P99 Latency
框架介绍 - 图9 框架介绍 - 图10 框架介绍 - 图11

2. Json Response

Throughputs Mean Latency P99 Latency
框架介绍 - 图12 框架介绍 - 图13 框架介绍 - 图14

帮助

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

协议

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

用户

由于商标版权缘故,未经厂商商务部授权允许无法用于宣传展示。

贡献

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

框架介绍 - 图15

捐赠

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

赞助

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

感谢

JetBrains