gf/README.MD

141 lines
4.5 KiB
Plaintext
Raw Normal View History

2019-06-19 09:09:13 +08:00
# GoFrame
2018-11-30 20:38:53 +08:00
[![Go Doc](https://godoc.org/github.com/gogf/gf?status.svg)](https://godoc.org/github.com/gogf/gf)
2019-06-19 09:09:13 +08:00
[![Build Status](https://travis-ci.org/gogf/gf.svg?branch=master)](https://travis-ci.org/gogf/gf)
2019-06-22 22:06:13 +08:00
[![Go Report](https://goreportcard.com/badge/github.com/gogf/gf?v=1)](https://goreportcard.com/report/github.com/gogf/gf)
2019-03-08 09:03:32 +08:00
[![Code Coverage](https://codecov.io/gh/gogf/gf/branch/master/graph/badge.svg)](https://codecov.io/gh/gogf/gf/branch/master)
2019-04-07 22:03:04 +08:00
[![Production Ready](https://img.shields.io/badge/production-ready-blue.svg)](https://github.com/gogf/gf)
[![License](https://img.shields.io/github/license/gogf/gf.svg?style=flat)](https://github.com/gogf/gf)
2018-12-17 20:44:38 +08:00
2019-08-30 22:15:54 +08:00
English | [简体中文](README_ZH.MD)
2019-05-18 13:52:18 +08:00
`GF(GoFrame)` is a modular, powerful, high-performance and production-ready application development framework
2020-04-03 09:32:04 +08:00
of golang. Providing a series of core components and dozens of practical modules, such as:
cache, logging, containers, timer, resource, validator, database orm, etc.
Supporting web server integrated with router, cookie, session, middleware, logger, configure,
template, https, hooks, rewrites and many more features.
2018-08-06 12:59:08 +08:00
2020-04-29 19:33:14 +08:00
> If you're a newbie to `Go`, you may consider `GoFrame` easy and great as `Laravel` in `PHP`, `SpringBoot` in `Java` or `Django` in `Python`.
2020-02-22 17:06:58 +08:00
2019-06-25 23:17:14 +08:00
# Installation
```
2019-10-13 23:05:48 +08:00
go get -u -v github.com/gogf/gf
2018-08-06 23:05:07 +08:00
```
2019-08-30 22:15:54 +08:00
suggested using `go.mod`:
2018-12-22 21:50:47 +08:00
```
require github.com/gogf/gf latest
2018-12-22 21:50:47 +08:00
```
2019-06-25 23:17:14 +08:00
# Limitation
2018-11-30 20:37:28 +08:00
```
2020-04-23 21:06:42 +08:00
golang version >= 1.11
2019-06-25 23:17:14 +08:00
```
2020-05-17 15:11:07 +08:00
# Packages
1. Primary
The `gf` repository maintains some basic and most commonly used packages, keeping it as lightweight and simple as possible.
1. Community
The community packages are contrinuted and maintained by community members, which are reposited in `gogf` organization.
2019-06-25 23:17:14 +08:00
# Architecture
2018-11-20 23:26:58 +08:00
<div align=center>
2020-01-23 15:04:12 +08:00
<img src="https://goframe.org/images/arch.png?v=11"/>
2018-11-20 23:26:58 +08:00
</div>
2020-04-23 17:14:11 +08:00
# Performance
2020-04-23 19:41:34 +08:00
Here's the most popular Golang frameworks and libraries performance testing result in `WEB Server`. Performance testing cases source codes are hosted at: https://github.com/gogf/gf-performance
2020-04-23 17:14:11 +08:00
2020-04-23 19:51:08 +08:00
## Environment
2020-04-23 17:18:15 +08:00
OS : Ubuntu 18.04 amd64
CPU : AMD A8-6600K x 4
MEM : 32GB
GO : v1.13.4
2020-04-23 19:51:08 +08:00
## Testing Tool
2020-04-23 17:18:15 +08:00
`ab`: Apache HTTP server benchmarking tool.
Command:
```
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
```
The concurrency starts from `100` to `10000`.
> Run `5` times for each case of each project and pick up the best testing result.
2020-04-23 17:14:11 +08:00
## 1. Hello World
<table>
<tr>
<th>Throughputs</th>
<th>Mean Latency</th>
<th>P99 Latency</th>
</tr>
<tr>
<td width="30%"><img src="http://gfcdn.johng.cn/images/performance/throughputs1.jpeg"></td>
<td width="30%"><img src="http://gfcdn.johng.cn/images/performance/meanlatency1.jpeg"></td>
<td width="30%"><img src="http://gfcdn.johng.cn/images/performance/p99latency1.jpeg"></td>
</tr>
</table>
2020-04-23 17:25:11 +08:00
## 2. Json Response
2020-04-23 17:14:11 +08:00
<table>
<tr>
<th>Throughputs</th>
<th>Mean Latency</th>
<th>P99 Latency</th>
</tr>
<tr>
<td width="30%"><img src="http://gfcdn.johng.cn/images/performance/throughputs3.jpeg"></td>
<td width="30%"><img src="http://gfcdn.johng.cn/images/performance/meanlatency3.jpeg"></td>
<td width="30%"><img src="http://gfcdn.johng.cn/images/performance/p99latency3.jpeg"></td>
</tr>
</table>
2019-06-25 23:17:14 +08:00
2020-04-23 17:23:57 +08:00
# Documentation
* 中文官网: https://goframe.org
* GoDoc API: https://godoc.org/github.com/gogf/gf
# Discussion
- QQ Group[116707870](//shang.qq.com/wpa/qunwpa?idkey=195f91eceeb5d7fa76009b7cd5a4641f70bf4897b7f5a520635eb26ff17adfe7)
- WX GroupAdd friend`389961817` in WeChat, commenting `GF`
- Issueshttps://github.com/gogf/gf/issues
> It's recommended learning `GoFrame` through its awesome source codes and API reference.
2019-06-25 23:17:14 +08:00
# License
`GF` is licensed under the [MIT License](LICENSE), 100% free and open-source, forever.
2020-01-18 22:21:37 +08:00
# Contributors
This project exists thanks to all the people who contribute. [[Contributors](https://github.com/gogf/gf/graphs/contributors)].
<a href="https://github.com/gogf/gf/graphs/contributors"><img src="https://opencollective.com/goframe/contributors.svg?width=890&button=false" /></a>
2020-05-08 19:16:52 +08:00
<!--
2019-06-25 23:17:14 +08:00
# Donators
We currently accept donation by Alipay/WechatPay, please note your github/gitee account in your payment bill. If you like `GF`, why not [buy developer a cup of coffee](DONATOR.MD)?
2020-02-22 17:06:58 +08:00
# Sponsors
We appreciate any kind of sponsorship for `GF` development. If you've got some interesting, please contact WeChat `389961817` / Email `john@goframe.org`.
2020-05-08 19:16:52 +08:00
-->
2020-02-22 17:06:58 +08:00
2019-06-25 23:17:14 +08:00
# Thanks
<a href="https://www.jetbrains.com/?from=GoFrame"><img src="https://goframe.org/images/jetbrains.png" width="100" alt="JetBrains"/></a>
2018-12-27 09:49:50 +08:00
2020-02-22 17:06:58 +08:00
2019-05-18 14:55:15 +08:00