GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.

Overview

GoFrame

Go Doc Build Status Go Report Code Coverage Production Ready License

English | 简体中文

GoFrame is a modular, powerful, high-performance and enterprise-class application development framework of Golang.

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.

Installation

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

suggested using go.mod:

require github.com/gogf/gf latest

Limitation

golang version >= 1.11

Architecture

Packages

  1. Primary Package

    The gf repository maintains some basic and most commonly used packages, keeping it as lightweight and simple as possible.

  2. Community Package

    The community packages are contributed and maintained by community members, which are hosted in gogf organization. Some of the community packages are separated from the gf repository, which are not of common usage or are with heavy dependencies.

Performance

The Web component performance of GoFrame, please refer to third-party project: https://github.com/the-benchmarker/web-frameworks

Documentation

Discussion

It's recommended learning GoFrame through its awesome source codes and API reference.

License

GF is licensed under the MIT License, 100% free and open-source, forever.

Part Of Users

We list part of the users here, if your company or products are using GoFrame, please let us know here.

Contributors

This project exists thanks to all the people who contribute. [Contributors].

Donators

If you love GF, why not buy developer a cup of coffee?

Sponsors

We appreciate any kind of sponsorship for GF development. If you've got some interesting, please contact WeChat 389961817 / Email [email protected].

Thanks

JetBrains Atlassian

Comments
  • 性能问题

    性能问题

    被gf的路由注册、数据库record、自带很多常用的工具集等特点吸引过来,确实方便,花了几天时间打磨出一套快速开发平台,包括权限系统、代码生成的功能,目前也有几个系统在此平台运行。 由于系统涉及到高并发大流量的场景,我做了很多的压测,发现内存不断的增加,3种注册方式都测试过,函数注册、对象注册、控制器注册都试过,甚至函数注册逻辑只渲染一个简单的模板页面,最终结果都会导致内存不断增加,增加到2G之后我就没再做测试,等了数个小时之后,内存才降到200多M。 周末在家,我用gin实现了同样的功能,包括模板输出和json输出,在高并发的情况下,内存稳定在36M。 当然,gin用起来确实没有gf爽快,我希望作者给出内存不断增长的原因。

    bug enhancement 
    opened by piaohao 16
  • [P0]两点建议,大大有空看到请回复下

    [P0]两点建议,大大有空看到请回复下

    1.关于g.Db,当sql的debug开启时会输出一条条sql日志,目前是这样的

    [ 12 ms] [default] SHOW FULL COLUMNS FROM `users_source 
    

    希望能在链式操作上开放一个接口手动设置一个unique.让其输出变成

    [ 12 ms] [uniquestr] SHOW FULL COLUMNS FROM `users_source` 
    //伪代码:
    db.Table(table).SetUniqueStr(guid.S()).One()
    

    基本每次http请求都会对上下文设置一个workid,让sql日志也实现关联. 2.关于gvalidate.go语言的特性会对数值类型自动设置默认值0,直接导致了required的验证失效,对于数值类型的required验证希望能做成对入参的has+empty+类型验证.例如对如下的money字段验证

    例1:?money=1&uid=1//`p:"money" v:"required " 通过
    例2:?uid=1//`p:"money" v:"required " 不通过
    例3:?money=&uid=1//`p:"money" v:"required " 不通过
    
    done feature 
    opened by LonelySally 15
  • 2.1版本gf build命令没有进行pack打包

    2.1版本gf build命令没有进行pack打包

    2.1版本gf build命令没有进行pack打包

    (1)gf build没有自动执行pack (2)手动pack文件到internal/packed/data.go,然后执行gf build,将编译后的可执行文件在同环境的新设备运行,结果无法运行,原因是manifest和resource的文件找不到。

    config.yaml配置如下

    gfcli:
      build:
        name: "gfCms"
        arch: "amd64"
        system: "linux"
        mod: "none"
        cgo: 0
        pack: "manifest/config,manifest/i18n,resource/public,resource/template"
        version: ""
        output: "./bin"
        extra: ""
    
    enhancement done question 
    opened by demozx 13
  • How to develop the doquery method in callback processing on the ORM interface to obtain the request header information of the current request

    How to develop the doquery method in callback processing on the ORM interface to obtain the request header information of the current request

    1. What version of Go and system type/arch are you using?

    go1.16

    2. What version of GoFrame are you using?

    goframe1.16.*

    3. Can this issue be re-produced with the latest release?

    no

    4. What did you do?

    func (d *MyDriver) DoQuery(ctx context.Context, link gdb.Link, sql string, args ...interface{}) (rows *sql.Rows, err error) { r.GetParam("") }

    5. What did you expect to see?

    I want to get the information in the request header of the current request in the callback processing doquery method developed by the ORM interface, because I need to get the tenant in the current request header and then dynamically splice the SQL

    6. What did you see instead?

    opened by FTLLOVE 12
  • session强制缓存到内存的问题

    session强制缓存到内存的问题

    最近新上服务时发现服务内存使用过多,所以开启了pprof定位,最后定位到是使用了session的问题,从源码可以看到,每次请求结束关闭session时都会把当前session刷进内存且在内存存活的时间与session stroge一致,这样就会导致session的数据会存在两份,一份在远端存储,一份为本地内存。当请求用户基数较大时程序会占用非常大的内存且很久都无法释放 https://github.com/gogf/gf/blob/be77779affcc6b58d9841001c128956aeac750bc/os/gsession/gsession_session.go#L106

    我理解这样设计的原因是当远端session存储不可用时,可以有内存session进行兜底。 但我觉得至少也需要有方法可以限制session使用的内存,遗憾的是目前并没有发现有提供这样的方法 https://github.com/gogf/gf/blob/be77779affcc6b58d9841001c128956aeac750bc/os/gsession/gsession_manager.go#L33

    希望可以在实例化SessionManager的时候设置sessionDatalruCap大小;或者提供可选项,由开发者选择是否使用本地内存缓存session

    enhancement done 
    opened by zhoxife3ng 12
  • gconv 转换碰到问题

    gconv 转换碰到问题

    1. What version of Go and system type/arch are you using?

    go version go1.13.4 windows/amd64

    2. What version of GoFrame are you using?

    v1.13.2-0.20200701150539-76d93b3a6124

    3. Can this issue be reproduced with the latest release?

    yes

    4. What did you do?

    
    type Sub2 struct {
    	SubName string
    }
    
    type sub1 struct {
    	Sub2
    	Name string
    }
    type Test struct {
    	Sub sub1 `json:"sub"`
    }
    
    func Test_Conv(t *testing.T) {
    	data := `{
        "sub": {
            "Name": "name",
            "SubName": "subname"
        }}`
    	vdata := Test{
    		Sub: sub1{
    			Name: "name",
    			Sub2: Sub2{
    				SubName: "subname",
    			},
    		},
    	}
    	t.Run("gjson.Decode", func(t *testing.T) {
    		tx := Test{}
    		err := gjson.DecodeTo(data, &tx)
    		if err != nil {
    			t.Fatal(err)
    		}
    		gtest.AssertEQ(tx, vdata)
    	})
    	t.Run("gconv.StructDeep", func(t *testing.T) {
    		tx := Test{}
    		err := gconv.StructDeep(data, &tx)
    		if err != nil {
    			t.Fatal(err)
    		}
    		gtest.AssertEQ(tx, vdata)
    	})
    }
    

    如上测试代码

    使用gjson直接转换正常,改成使用gconv转换出来的结果不符合预期?不知是我的使用问题还是BUG?

    原始的使用场景是从配置文件直接转换成所需要的数据格式.发现异常

    g.Cfg().GetStructDeep(name,Point)
    

    目前我的解决方法

    gjson.DecodeTo(g.Cfg().GetString(name), Point)
    

    5. What did you expect to see?

    {"sub":{"SubName":"subname","Name":"name"}}
    

    6. What did you see instead?

    {"sub":{"SubName":"","Name":"name"}}
    
    bug enhancement done 
    opened by chenall 12
  • 中间件的执行逻辑问题

    中间件的执行逻辑问题

    使用的v1.9.10的GF,现有如下代码:

    package main
    
    import (
    	"fmt"
    	"net/http"
    
    	"github.com/gogf/gf/frame/g"
    	"github.com/gogf/gf/net/ghttp"
    )
    
    func MiddlewareAuth1(r *ghttp.Request) {
    	fmt.Println("middleware 1")
    	token := r.Get("token")
    	if token == "123456" {
    		r.Middleware.Next()
    	} else {
    		r.Response.WriteStatus(http.StatusForbidden)
    	}
    }
    func MiddlewareAuth2(r *ghttp.Request) {
    	fmt.Println("middleware 2")
    	token := r.Get("token")
    	if token == "123456" {
    		r.Middleware.Next()
    	} else {
    		r.Response.WriteStatus(http.StatusForbidden)
    	}
    }
    
    func MiddlewareFree(r *ghttp.Request) {
    	fmt.Println("middleware free")
    	r.Response.CORSDefault()
    	r.Middleware.Next()
    }
    func MiddlewareCORS(r *ghttp.Request) {
    	fmt.Println("middleware CORS")
    	r.Response.CORSDefault()
    	r.Middleware.Next()
    }
    
    func main() {
    	s := g.Server()
    	s.Group("/", func(g *ghttp.RouterGroup) {
    		g.MiddlewarePattern("/*", func(r *ghttp.Request) {
    			if r.URL.Path == "/login" {
    				r.Middleware.Next()
    				return
    			}
    			MiddlewareAuth1(r)
    			MiddlewareAuth2(r)
    		})
    	})
    	s.Group("/", func(g *ghttp.RouterGroup) {
    		g.ALL("/login", func(r *ghttp.Request) {
    			r.Response.Write("login")
    		})
    		g.ALL("/dashboard", func(r *ghttp.Request) {
    			r.Response.Write("dashboard")
    		})
    	})
    	s.Group("/api.v2", func(g *ghttp.RouterGroup) {
    		g.Middleware(MiddlewareFree, MiddlewareCORS)
    		g.ALL("/user/list", func(r *ghttp.Request) {
    			r.Response.Write("list")
    		})
    	})
    	s.SetPort(8199)
    	s.Run()
    }
    

    当我请求localhost:8199/api.v2/user/list的时候,的确应该返回403,但是问题是我收到了两个403,响应是这样的:ForbiddenForbidden。我的理解应该是:前一个中间件已经返回403了,不是200了,后面的中间件是不是不要再执行了?或者要其他什么手段控制它是否执行? 如果我把代码改成这样:

    package main
    
    import (
    	"fmt"
    	"net/http"
    
    	"github.com/gogf/gf/frame/g"
    	"github.com/gogf/gf/net/ghttp"
    )
    
    func MiddlewareAuth1(r *ghttp.Request) {
    	fmt.Println("middleware 1")
    	token := r.Get("token")
    	if token == "123456" {
    		r.Middleware.Next()
    	} else {
    		r.Response.WriteStatus(http.StatusForbidden)
    	}
    }
    func MiddlewareAuth2(r *ghttp.Request) {
    	fmt.Println("middleware 2")
    	token := r.Get("token")
    	if token == "123456" {
    		r.Middleware.Next()
    	} else {
    		r.Response.WriteStatus(http.StatusForbidden)
    	}
    }
    
    func MiddlewareFree(r *ghttp.Request) {
    	fmt.Println("middleware free")
    	r.Response.CORSDefault()
    	r.Middleware.Next()
    }
    func MiddlewareCORS(r *ghttp.Request) {
    	fmt.Println("middleware CORS")
    	r.Response.CORSDefault()
    	r.Middleware.Next()
    }
    
    func main() {
    	s := g.Server()
    	s.Group("/", func(g *ghttp.RouterGroup) {
    		g.Middleware(MiddlewareAuth1, MiddlewareAuth2)
    		g.MiddlewarePattern("/*", func(r *ghttp.Request) {
    			if r.URL.Path == "/login" {
    				r.Middleware.Next()
    				return
    			}
    		})
    	})
    	s.Group("/", func(g *ghttp.RouterGroup) {
    		g.ALL("/login", func(r *ghttp.Request) {
    			r.Response.Write("login")
    		})
    		g.ALL("/dashboard", func(r *ghttp.Request) {
    			r.Response.Write("dashboard")
    		})
    	})
    	s.Group("/api.v2", func(g *ghttp.RouterGroup) {
    		g.Middleware(MiddlewareFree, MiddlewareCORS)
    		g.ALL("/user/list", func(r *ghttp.Request) {
    			r.Response.Write("list")
    		})
    	})
    	s.SetPort(8199)
    	s.Run()
    }
    

    注意第44行,是我的改动,此时再请求localhost:8199/api.v2/user/list,只会返回1个403,一个Forbidden,然而,新的问题来了,不能正常访问login接口了。

    总结一下:

    1. 如果使用MiddlewarePattern绑定中间件,前一个403了之后,后一个还会执行,是否bug?
    2. 如果使用RouterGroup绑定中间件,官方文档中的例外控制action就失效了,是否bug?
    enhancement question 
    opened by ccpwcn 12
  • CPU 占用居高不下

    CPU 占用居高不下

    Build Detail: Go Version: go1.13.4 GF Version: v1.13.1 Git Commit: 1db1828b35c15b4a92cd144c33e636eb52d7ec07 Build Time: 2020-06-14 21:01:20

    今日进行代码漏洞扫描,指标如下:

    2个并发请求
    250ms请求延迟
    

    1、持续5分钟后,系统4核CPU全部占满, 2、7分钟后,应用服务响应变慢, 3、扫描结束30分钟后,CPU资源仍未释放

    20201119163428

    profile001

    enhancement done 
    opened by mir355 11
  • Cannot upload file on Linux

    Cannot upload file on Linux

    1. What version of Go and system type/arch are you using?

    go version go1.14.3 linux/amd64

    2. What version of GoFrame are you using?

    v1.12.3

    3. Can this issue be reproduced with the latest release?

    Yes

    4. What did you do?

    Use ghttp client to upload file ghttp.post, although it can be uploaded normally on Windows, it cannot be uploaded on Linux no matter using relative path or absolute path. The file is saved through files.save

    5. What did you expect to see?

    Normal uploads are also available on Linux

    6. What did you see instead?

    Normal uploads are also available on Linux

    question 
    opened by mingzaily 11
  • gqueue性能问题咨询

    gqueue性能问题咨询

    最近在使用gf的gqueue的时候,使用日志打点发现gqueue的性能似乎不太稳定,在我理解应该都是毫秒以下的处理,但是实际抖动延时很大,最大的时候达到了140ms,具体如下图描述,是否在使用上存在有什么不对的地方么。 golang 版本 go version go1.11.4 GOOS=linux AMD64 gf 版本 v1.6.17

    TIM截图20190616163435

    enhancement done 
    opened by foxhack 11
  • 2.0.6版本自带的swagger不能被其他IP访问

    2.0.6版本自带的swagger不能被其他IP访问

    使用2.0.6版本并配置了swagger,本地打开正常,本地其他ip打开不了,后端显示200

    配置文件 server: address: ":8201" serverRoot: "resource/public" dumpRouterMap: true routeOverWrite: true openapiPath: "/api.json" swaggerPath: "/swagger" NameToUriType: 3 maxHeaderBytes: "20KB" clientMaxBodySize: "50MB"

    Logging配置

    logPath: "resource/log/server" # 日志文件存储目录路径,建议使用绝对路径。默认为空,表示关闭 logStdout: true # 日志是否输出到终端。默认为true errorStack: true # 当Server捕获到异常时是否记录堆栈信息到日志中。默认为true errorLogEnabled: true # 是否记录异常日志信息到日志中。默认为true errorLogPattern: "error-{Ymd}.log" # 异常错误日志文件格式。默认为"error-{Ymd}.log" accessLogEnabled: true # 是否记录访问日志。默认为false accessLogPattern: "access-{Ymd}.log" # 访问日志文件格式。默认为"access-{Ymd}.log"

    访问不了显示 image

    正常访问显示 image

    opened by mijjjj 10
  • 热编译传入args参数时,在windows10下无法正常启动

    热编译传入args参数时,在windows10下无法正常启动

    热编译传入args参数时,在windows10下无法正常启动,但是在linux环境下可以正常使用

    gf版本:v2.2.5

    PS E:\server> gf -v
    GoFrame CLI Tool v2.2.5, https://goframe.org
    GoFrame Version: v2.2.5 in current go.mod
    CLI Installed At: C:\Windows\gf2.exe
    CLI Built Detail:
      Go Version:  go1.17.13
      GF Version:  v2.2.5
      Git Commit:  2022-11-25 10:45:56 4553f90a834ea32ff844303da3f6f18c9f091635
      Build Time:  2022-11-28 20:31:52
    

    代码如下:

    PS E:\server> gf run main.go --args "test"
    build: main.go
    go build -o ./\main.exe  main.go
    ./\main.exe test
    build running error: exec: "E:\\server\\main.exe test": file does not exist
    
    opened by bufanyun 0
  • func RuleGT.Run  always return error

    func RuleGT.Run always return error

    1. What version of Go and system type/arch are you using?

    go 1.19

    2. What version of GoFrame are you using?

    v2.2.5

    3. Can this issue be re-produced with the latest release?

    yes

    4. What did you do?

    I add a valid v:"gt:0" on PageNo

    type GetInspectionTemplateReq struct { g.Meta path:"/inspectionTemplate/get" tags:"InspectionTemplate" method:"post" summary:"GetInspectionTemplate" Name string json:"name" TemplateType int json:"templateType" PeriodType int json:"periodType" Used int json:"used" PageNo int json:"pageNo" v:"gt:0" PageSize int json:"pageSize" v:"gt:0" } Then test the api in postman, the reqest as: { "pageNo":1, "pageSize":10 }

    5. What did you expect to see?

    it return the data from db.

    6. What did you see instead?

    it returns error, "The PageNo" value '1' must be greater than field value ''

    opened by happyinsect 0
  • MYSQL的sleep线程过多,没有复用连接数.

    MYSQL的sleep线程过多,没有复用连接数.

    在gf2.1.4版本下,通过设置 maxIdle: "(可选)连接池最大闲置的连接数" 发现并没有效果

    通过mysql语句查询

    select * from information_schema.processlist 
    

    得到的sleep线程数达到100多

    问题1.该maxIdle设置不是理解上的,空闲时会释放连接池中的连接,只保留设置的数量在连接池中吗?

    问题2.mysql显示的sleep线程越来越多,好像连接池并没有重用一样? maxOpen: "(可选)连接池最大打开的连接数" 没有设置 ps:所有的sleep线程的ip都是同一个,并该ip下只有该进程在运行

    我想要解决? 问题1.希望不要保留太多的空闲连接数

    问题2.希望连接池能重用连接数,因为发现sleep的线程只会越来越多.

    opened by qq413434162 0
  • gconv.Struct方法转换问题

    gconv.Struct方法转换问题

    1. What version of Go and system type/arch are you using?

    go version go1.17.3 darwin/arm64

    2. What version of GoFrame are you using?

    使用了两个版本测试,结果不一样 1、1.16.7 2、2.2.2

    3. Can this issue be re-produced with the latest release?

    4. What did you do?

    func main() {
       var (
          testStruct = struct {
             Time time.Time `json:"time"`
          }{}
          jsonMap = map[string]interface{}{"time": "2022-12-15 16:11:34"}
       )
     
       if err := gconv.Struct(jsonMap, &testStruct); err != nil {
          fmt.Println("gconv.Struct jsonMap失败:", err)
       } else {
          fmt.Println("gconv.Struct jsonMap成功")
       }
     
       // 输出 使用gf v1.16.7结果
       //gconv.Struct jsonMap成功
    
       // 输出 使用gf v2.2.2结果
       //gconv.Struct jsonMap失败: parsing time "2022-12-15 16:11:34" as "2006-01-02T15:04:05Z07:00": cannot parse " 16:11:34" as "T"
    }
    

    5. What did you expect to see?

    从旧版升级到gf2之后,希望gconv.Struct方法是向下兼容的,尤其是对time.Time的转换

    https://github.com/gogf/gf/blob/master/util/gconv/gconv_struct.go#L371 对Common interface check失败后能否再次尝试使用Default converting进行转换

    6. What did you see instead?

    opened by zhoxife3ng 0
  • i18n to translation  multi word not work

    i18n to translation multi word not work

    my code runing in linux amd64 use golang 1.19.3 and gf version v2.2.5 use i18n to translation

    1. zh-CN/vluc.toml "vluc.request" ="请求" "vluc.forbidden"="被禁止的"
    2. test
     i18n := gi18n.New()
      actx := gi18n.WithLanguage(context.TODO(), "zh-CN")
      fmt.Println(i18n.Translate(actx, `{#vluc.request}{#vluc.request}`))
    

    3)output {#vluc.request}{#vluc.request} is not to translate to zh-CN and only use {#vluc.request} also not work but use fmt.Println(i18n.Translate(actx, vluc.request)) is ok 4) it's bug or document error?

    opened by ScorpioRen 1
Releases(v2.2.5)
  • v2.2.5(Nov 28, 2022)

    What's Changed

    • add ut cases for package gcode by @huangqian1985 in https://github.com/gogf/gf/pull/2307
    • add ut cases for package gerror by @huangqian1985 in https://github.com/gogf/gf/pull/2304
    • add ut cases for package gtime by @huangqian1985 in https://github.com/gogf/gf/pull/2303
    • add ut cases for package glog by @huangqian1985 in https://github.com/gogf/gf/pull/2302
    • change result data type of function Count from int to int64 for package gdb by @houseme in https://github.com/gogf/gf/pull/2298
    • feat: cmd gf prebuild suport oracle by @hailaz in https://github.com/gogf/gf/pull/2312
    • add ut cases for package g by @huangqian1985 in https://github.com/gogf/gf/pull/2315
    • add ut cases for package gdebug by @huangqian1985 in https://github.com/gogf/gf/pull/2313
    • add zookeeper registry support by @huyuanxin in https://github.com/gogf/gf/pull/2284
    • add ut cases for package glog part2 by @huangqian1985 in https://github.com/gogf/gf/pull/2317
    • fix invalid UpdatedAt usage in soft deleting feature for package gdb by @hailaz in https://github.com/gogf/gf/pull/2323
    • fix issue in failed installing when there's shortcut between file paths for command install by @gqcn in https://github.com/gogf/gf/pull/2326
    • improve lru clearing for package gcache by @gqcn in https://github.com/gogf/gf/pull/2327

    New Contributors

    • @huyuanxin made their first contribution in https://github.com/gogf/gf/pull/2284

    Full Changelog: https://github.com/gogf/gf/compare/v2.2.4...v2.2.5

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(30.66 MB)
    gf_darwin_arm64(30.66 MB)
    gf_freebsd_386(25.87 MB)
    gf_freebsd_amd64(31.37 MB)
    gf_linux_386(26.04 MB)
    gf_linux_amd64(30.95 MB)
    gf_linux_arm(25.86 MB)
    gf_linux_arm64(29.81 MB)
    gf_linux_ppc64le(29.98 MB)
    gf_netbsd_amd64(31.31 MB)
    gf_openbsd_amd64(31.37 MB)
    gf_windows_386.exe(26.81 MB)
    gf_windows_amd64.exe(31.61 MB)
  • v2.2.4(Nov 16, 2022)

    What's Changed

    • add Tag* functions to retreive most commonly used tag value from struct field for package gstructs; use description tag as default value if brief is empty for gcmd.Argument by @gqcn in https://github.com/gogf/gf/pull/2299
    • fix cache issue in Count/Value functions for gdb.Model by @gqcn in https://github.com/gogf/gf/pull/2300
    • add minus of start parameter support for gstr.Substr, like the substr function in PHP by @cnjinhy in https://github.com/gogf/gf/pull/2297

    New Contributors

    • @cnjinhy made their first contribution in https://github.com/gogf/gf/pull/2297

    Full Changelog: https://github.com/gogf/gf/compare/v2.2.3...v2.2.4

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(26.07 MB)
    gf_darwin_arm64(26.01 MB)
    gf_freebsd_386(23.10 MB)
    gf_freebsd_amd64(26.67 MB)
    gf_linux_386(23.26 MB)
    gf_linux_amd64(26.34 MB)
    gf_linux_arm(23.09 MB)
    gf_linux_arm64(25.22 MB)
    gf_linux_ppc64le(25.38 MB)
    gf_netbsd_amd64(26.62 MB)
    gf_openbsd_amd64(26.68 MB)
    gf_windows_386.exe(24.00 MB)
    gf_windows_amd64.exe(27.01 MB)
  • v2.2.3(Nov 14, 2022)

    What's Changed

    • fix redis ci yaml by @gqcn in https://github.com/gogf/gf/pull/2269
    • move common used tag from packages to package gtag for maintainability by @gqcn in https://github.com/gogf/gf/pull/2256
    • feat: modify sql count value int64 by @houseme in https://github.com/gogf/gf/pull/2266
    • add ut cases for package gconv by @huangqian1985 in https://github.com/gogf/gf/pull/2272
    • fix typo for comments by @wanghaha-dev in https://github.com/gogf/gf/pull/2268
    • gtest model unit test by @huangqian1985 in https://github.com/gogf/gf/pull/2267
    • add supervisor for package grpool by @gqcn in https://github.com/gogf/gf/pull/2252
    • fix used schema not change in nested transaction when used different schemas by @gqcn in https://github.com/gogf/gf/pull/2279
    • fix IsSubDomain method error by @ItsWewin in https://github.com/gogf/gf/pull/2283
    • add command fix and up by @gqcn in https://github.com/gogf/gf/pull/2280
    • style(test): Unify the indentation format of SQL strings in clickhouse_test by @CCpro10 in https://github.com/gogf/gf/pull/2277
    • add ut cases for package gconv part2 by @huangqian1985 in https://github.com/gogf/gf/pull/2282
    • fix: gcron check if the predefined patterns fail by @hailaz in https://github.com/gogf/gf/pull/2288
    • ci: action update by @hailaz in https://github.com/gogf/gf/pull/2289
    • fix: gcache MustGetOrSetFunc error by @zcyc in https://github.com/gogf/gf/pull/2291
    • improve ut case for package gcache/gpool by @gqcn in https://github.com/gogf/gf/pull/2290
    • fix /* router supported for handler of package ghttp; fix json tag name issue when it contains , for package goai; add proxy example for http server by @gqcn in https://github.com/gogf/gf/pull/2294
    • fix: update szenius/set-[email protected] by @hailaz in https://github.com/gogf/gf/pull/2293

    New Contributors

    • @wanghaha-dev made their first contribution in https://github.com/gogf/gf/pull/2268
    • @ItsWewin made their first contribution in https://github.com/gogf/gf/pull/2283
    • @zcyc made their first contribution in https://github.com/gogf/gf/pull/2291

    Full Changelog: https://github.com/gogf/gf/compare/v2.2.2...v2.2.3

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(26.07 MB)
    gf_darwin_arm64(26.00 MB)
    gf_freebsd_386(23.09 MB)
    gf_freebsd_amd64(26.67 MB)
    gf_linux_386(23.26 MB)
    gf_linux_amd64(26.34 MB)
    gf_linux_arm(23.09 MB)
    gf_linux_arm64(25.21 MB)
    gf_linux_ppc64le(25.38 MB)
    gf_netbsd_amd64(26.61 MB)
    gf_openbsd_amd64(26.67 MB)
    gf_windows_386.exe(24.00 MB)
    gf_windows_amd64.exe(27.00 MB)
  • v2.2.2(Nov 4, 2022)

    What's Changed

    • auto creating error with code in ghttp.MiddlewareHandlerResponse when there's no 200 http status code by @gqcn in https://github.com/gogf/gf/pull/2223
    • opt: parameter verification of optimized handler methods by @ivothgle in https://github.com/gogf/gf/pull/2224
    • fix gen dao oracle entity bug by @zaier277 in https://github.com/gogf/gf/pull/2219
    • improve nil receiver handling for package gtime by @gqcn in https://github.com/gogf/gf/pull/2226
    • feat: add gcfg.Adapter implements using nacos service by @qinyuguang in https://github.com/gogf/gf/pull/2232
    • add golangci feature to guarantee codes quality by @houseme in https://github.com/gogf/gf/pull/2229
    • attach and export real handler for request by @SUDOCS in https://github.com/gogf/gf/pull/2220
    • add schema name in debug logging content; add master-slave ut case for package gdb by @gqcn in https://github.com/gogf/gf/pull/2249
    • fix issue 1915 and repeated link instance key for package gdb by @gqcn in https://github.com/gogf/gf/pull/2250
    • fix issue #2244 by @gqcn in https://github.com/gogf/gf/pull/2257
    • version.go updates by @gqcn in https://github.com/gogf/gf/pull/2259
    • fix router parameters handling by auto url decoding by @gqcn in https://github.com/gogf/gf/pull/2262

    New Contributors

    • @ivothgle made their first contribution in https://github.com/gogf/gf/pull/2224
    • @zaier277 made their first contribution in https://github.com/gogf/gf/pull/2219
    • @SUDOCS made their first contribution in https://github.com/gogf/gf/pull/2220

    Full Changelog: https://github.com/gogf/gf/compare/v2.2.1...v2.2.2

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(26.02 MB)
    gf_darwin_arm64(25.94 MB)
    gf_freebsd_386(23.06 MB)
    gf_freebsd_amd64(26.64 MB)
    gf_linux_386(23.21 MB)
    gf_linux_amd64(26.30 MB)
    gf_linux_arm(23.08 MB)
    gf_linux_arm64(25.14 MB)
    gf_linux_ppc64le(25.31 MB)
    gf_netbsd_amd64(26.55 MB)
    gf_openbsd_amd64(26.63 MB)
    gf_windows_386.exe(23.95 MB)
    gf_windows_amd64.exe(26.95 MB)
  • v2.2.1(Oct 18, 2022)

    What's Changed

    • fix: pgsql driver check local type error by @yss930819 in https://github.com/gogf/gf/pull/2192
    • fix info content when listens on port :0 for ghttp.Server by @gqcn in https://github.com/gogf/gf/pull/2191
    • fix: modify Polaris config readme.md by @houseme in https://github.com/gogf/gf/pull/2186
    • fix issue of OmitEmptyWhere in Builder for package gdb by @gqcn in https://github.com/gogf/gf/pull/2195
    • fix issue #1946 by @gqcn in https://github.com/gogf/gf/pull/2194
    • remove repeated error stack file lines among stacks for package gerror by @gqcn in https://github.com/gogf/gf/pull/2199
    • fix issue #1934 by @gqcn in https://github.com/gogf/gf/pull/2193
    • Add test for clickhouse #1815 by @CCpro10 in https://github.com/gogf/gf/pull/2200
    • fix issue #1971 by @gqcn in https://github.com/gogf/gf/pull/2203
    • improve ut cases for package contrib/drivers/mysql by @gqcn in https://github.com/gogf/gf/pull/2216
    • add Ptr* functions for package gconv by @gqcn in https://github.com/gogf/gf/pull/2206
    • Parse database empty json field to empty object( fix issue 2105 ) by @zhonghuaxunGM in https://github.com/gogf/gf/pull/2213
    • v2.2.1 by @gqcn in https://github.com/gogf/gf/pull/2222

    New Contributors

    • @yss930819 made their first contribution in https://github.com/gogf/gf/pull/2192
    • @CCpro10 made their first contribution in https://github.com/gogf/gf/pull/2200

    Full Changelog: https://github.com/gogf/gf/compare/v2.2.0...v2.2.1

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(26.01 MB)
    gf_darwin_arm64(25.93 MB)
    gf_freebsd_386(23.05 MB)
    gf_freebsd_amd64(26.63 MB)
    gf_linux_386(23.20 MB)
    gf_linux_amd64(26.28 MB)
    gf_linux_arm(23.08 MB)
    gf_linux_arm64(25.13 MB)
    gf_linux_ppc64le(25.30 MB)
    gf_netbsd_amd64(26.56 MB)
    gf_openbsd_amd64(26.61 MB)
    gf_windows_386.exe(23.94 MB)
    gf_windows_amd64.exe(26.95 MB)
  • v2.2.0(Oct 10, 2022)

    What's Changed

    • fix glog bug by @wenzi1 in https://github.com/gogf/gf/pull/1844
    • Fix multiple gdb-group overrides by @qq375251855 in https://github.com/gogf/gf/pull/1890
    • feat/gfcli: replace gofmt&goimports with tools/imports by @BeanWei in https://github.com/gogf/gf/pull/1935
    • update sqlite driver to github.com/glebarez/go-sqlite by @hailaz in https://github.com/gogf/gf/pull/1932
    • add gstr.IsGNUVersion by @gqcn in https://github.com/gogf/gf/pull/1937
    • improve configuration parsing for command gen dao by @gqcn in https://github.com/gogf/gf/pull/1938
    • add cross building support for sqlite in command gen dao by @gqcn in https://github.com/gogf/gf/pull/1944
    • improve package glog; fix issue in package gtrace by @gqcn in https://github.com/gogf/gf/pull/1952
    • improve DeepCopy feature for bunch of components, especially the container and gtime by @gqcn in https://github.com/gogf/gf/pull/1956
    • add full week/month name support for pattern, add seconds fix feature in some delay seconds for package gcron by @gqcn in https://github.com/gogf/gf/pull/1960
    • add file export by @mingzaily in https://github.com/gogf/gf/pull/1959
    • gf gen service supports the generation of service files in the specified naming format by @L-fushen in https://github.com/gogf/gf/pull/1953
    • Fix goai repeat param by @mingzaily in https://github.com/gogf/gf/pull/1916
    • fix gf run custom arguments and gf gen dao specify config file path by @omegamt in https://github.com/gogf/gf/pull/1879
    • improve UT for package gcron by @gqcn in https://github.com/gogf/gf/pull/1966
    • update comment for ghttp.Request by @yuancjun in https://github.com/gogf/gf/pull/1968
    • redis add sentinel slaveOnly filed by @whosafe in https://github.com/gogf/gf/pull/1948
    • improve list tables for pgsql by @qinyuguang in https://github.com/gogf/gf/pull/1790
    • add support for slice types of pgsql by @jinmao88 in https://github.com/gogf/gf/pull/1881
    • gfcli: fix imports parse and update gofmt by @BeanWei in https://github.com/gogf/gf/pull/1979
    • some improves for ci yaml and package cmd/gf, database/gdb by @gqcn in https://github.com/gogf/gf/pull/1972
    • Improve the code coverage of the gset module by @huangqian1985 in https://github.com/gogf/gf/pull/1977
    • Feature/pgsql add pgsql unit test (#1853) by @chaggle in https://github.com/gogf/gf/pull/1973
    • fix go.sum of package contrib/drivers/pgsql by @gqcn in https://github.com/gogf/gf/pull/1980
    • Improve the code coverage of the gutil, grand module by @huangqian1985 in https://github.com/gogf/gf/pull/1989
    • Improve the code coverage of the gpool, gqueue, gring module by @huangqian1985 in https://github.com/gogf/gf/pull/1987
    • Improve the code coverage of the gvar module by @huangqian1985 in https://github.com/gogf/gf/pull/1982
    • Improve the code coverage of the gtype module by @huangqian1985 in https://github.com/gogf/gf/pull/1975
    • fix UT issue for package gcron by @gqcn in https://github.com/gogf/gf/pull/1992
    • new version v2.1.2 by @gqcn in https://github.com/gogf/gf/pull/1993
    • add init ctx feature by @gqcn in https://github.com/gogf/gf/pull/1995
    • fix(gdb): panic when concurrent db config map read and write. by @laushunyu in https://github.com/gogf/gf/pull/1997
    • fix concurrent safety for package gdb by @gqcn in https://github.com/gogf/gf/pull/1998
    • improve panic...recover of exit feature for package ghttp/gtimer/gfsnotify by @gqcn in https://github.com/gogf/gf/pull/2000
    • update docker folder by @whosafe in https://github.com/gogf/gf/pull/2007
    • improve package gerror, add HasCode/HasError function for package gerror by @gqcn in https://github.com/gogf/gf/pull/2006
    • Feature/ci cache by @hailaz in https://github.com/gogf/gf/pull/2010
    • ci updates to avoid repeated procedures by @hailaz in https://github.com/gogf/gf/pull/2020
    • use method name as its command name if no name defined in Meta of input struct for package gcmd by @gqcn in https://github.com/gogf/gf/pull/2019
    • improve field type check from db to golang by @gqcn in https://github.com/gogf/gf/pull/2023
    • fix gf-cli command 'gen dao' help infomation by @SSnoWich in https://github.com/gogf/gf/pull/2022
    • fix issue in gstr.Nl2Br by @gqcn in https://github.com/gogf/gf/pull/2028
    • feature: gen dao from tpl file path by @hailaz in https://github.com/gogf/gf/pull/2021
    • Update goai_path.go by @ar026 in https://github.com/gogf/gf/pull/2029
    • add MiddlewareJsonBody, improve error response handling for package ghttp by @gqcn in https://github.com/gogf/gf/pull/2032
    • fix issue #1648 by @gqcn in https://github.com/gogf/gf/pull/2033
    • improve header printing in json format for package glog; add golang v1.18 support for ci workflow by @gqcn in https://github.com/gogf/gf/pull/2037
    • fix precision lost of int64 for package gcfg by @qinyuguang in https://github.com/gogf/gf/pull/2044
    • improve gdb.CheckValueForLocalType for pgsql by @qinyuguang in https://github.com/gogf/gf/pull/2040
    • Feature/pgsql last insert by @hailaz in https://github.com/gogf/gf/pull/1994
    • add interface DB.CheckLocalTypeForField for package gdb by @gqcn in https://github.com/gogf/gf/pull/2059
    • fix gctx init slice bounds out of range on ios platform by @omegamt in https://github.com/gogf/gf/pull/2062
    • fix (clickhouse) : fix TableFields of clickhouse driver when using link configuration by @marunrun in https://github.com/gogf/gf/pull/2063
    • fixed inconsistent results when converting float64(NaN) to int/uint on multiple platforms by @DGuang21 in https://github.com/gogf/gf/pull/2064
    • add issue bot support (#2065) by @LingCoder in https://github.com/gogf/gf/pull/2066
    • Fix name of issue CI by @gqcn in https://github.com/gogf/gf/pull/2071
    • fix issue #2047 by @gqcn in https://github.com/gogf/gf/pull/2069
    • fix issue 1914 by @gqcn in https://github.com/gogf/gf/pull/2075
    • add more UT cases for package gview by @gqcn in https://github.com/gogf/gf/pull/2072
    • improve command init: add go mod tidy for init project by @gqcn in https://github.com/gogf/gf/pull/2083
    • v2.1.3 release by @gqcn in https://github.com/gogf/gf/pull/2084
    • fix issue in OpenAPI json marshaling of embedded struct definition; improve command gen service by @gqcn in https://github.com/gogf/gf/pull/2089
    • improve logging content printing for internal log by @gqcn in https://github.com/gogf/gf/pull/2090
    • fix field type check for package gdb by @gqcn in https://github.com/gogf/gf/pull/2086
    • fix issue #1921 by @gqcn in https://github.com/gogf/gf/pull/2091
    • new release v2.1.4 by @gqcn in https://github.com/gogf/gf/pull/2095
    • remove uint repeat conversion by @DGuang21 in https://github.com/gogf/gf/pull/2096
    • fix error message for package gtrace by @gqcn in https://github.com/gogf/gf/pull/2103
    • add GzipPathWriter for package gcompress by @gqcn in https://github.com/gogf/gf/pull/2116
    • TplTableNameCamelLowerCase remove space by @promisingMan in https://github.com/gogf/gf/pull/2109
    • project template update for command init by @gqcn in https://github.com/gogf/gf/pull/2117
    • fix issue bot :ignore issue which without labels by @LingCoder in https://github.com/gogf/gf/pull/2077
    • improve and add clear option for command gen dao/service by @gqcn in https://github.com/gogf/gf/pull/2123
    • fix issue incorrect struct name match pattern for command gen service by @gqcn in https://github.com/gogf/gf/pull/2125
    • fix: pgsql DoExec Transaction checks by @hailaz in https://github.com/gogf/gf/pull/2101
    • remove noisy internal logging content of package gcron by @gqcn in https://github.com/gogf/gf/pull/2141
    • fix issue in init context for package gctx by @gqcn in https://github.com/gogf/gf/pull/2138
    • feature/v2.2.0 by @gqcn in https://github.com/gogf/gf/pull/2154
    • add switch of brief stack for package gerror by @gqcn in https://github.com/gogf/gf/pull/2153
    • Feature/driver-dm fix something is invalid in dm by @zhonghuaxunGM in https://github.com/gogf/gf/pull/2158
    • add local db configuration support for package gdb by @gqcn in https://github.com/gogf/gf/pull/2161
    • fix configuration management for package gdb by @gqcn in https://github.com/gogf/gf/pull/2163
    • add watch feature for package kubecm by @gqcn in https://github.com/gogf/gf/pull/2164
    • add gcfg.Adapter implements using apollo service by @gqcn in https://github.com/gogf/gf/pull/2165
    • fix issue #2172 by @gqcn in https://github.com/gogf/gf/pull/2173
    • fix issue #1965 by @glennliao in https://github.com/gogf/gf/pull/2174
    • fix issue #1965 by @gqcn in https://github.com/gogf/gf/pull/2177
    • add WithUUID for package gtrace by @gqcn in https://github.com/gogf/gf/pull/2176
    • improve port listening for ghttp.Server by @gqcn in https://github.com/gogf/gf/pull/2175
    • feat: improve glog for polaris register by @houseme in https://github.com/gogf/gf/pull/2178
    • add function ZipPathContent for package gcompress by @gqcn in https://github.com/gogf/gf/pull/2179
    • feat: create polaris config by @houseme in https://github.com/gogf/gf/pull/2170
    • package comments and readme update by @gqcn in https://github.com/gogf/gf/pull/2182
    • feat: temporarily disable the unit testing of the Polaris configuration center by @houseme in https://github.com/gogf/gf/pull/2183
    • new version v2.2.0 by @gqcn in https://github.com/gogf/gf/pull/2185

    New Contributors

    • @qq375251855 made their first contribution in https://github.com/gogf/gf/pull/1890
    • @BeanWei made their first contribution in https://github.com/gogf/gf/pull/1935
    • @L-fushen made their first contribution in https://github.com/gogf/gf/pull/1953
    • @omegamt made their first contribution in https://github.com/gogf/gf/pull/1879
    • @whosafe made their first contribution in https://github.com/gogf/gf/pull/1948
    • @jinmao88 made their first contribution in https://github.com/gogf/gf/pull/1881
    • @laushunyu made their first contribution in https://github.com/gogf/gf/pull/1997
    • @SSnoWich made their first contribution in https://github.com/gogf/gf/pull/2022
    • @ar026 made their first contribution in https://github.com/gogf/gf/pull/2029
    • @marunrun made their first contribution in https://github.com/gogf/gf/pull/2063
    • @LingCoder made their first contribution in https://github.com/gogf/gf/pull/2066
    • @promisingMan made their first contribution in https://github.com/gogf/gf/pull/2109
    • @glennliao made their first contribution in https://github.com/gogf/gf/pull/2174

    Full Changelog: https://github.com/gogf/gf/compare/v2.1.0...v2.2.0

    中文发布记录

    https://goframe.org/display/gf/v2.2+2022-10-11

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(26.01 MB)
    gf_darwin_arm64(25.93 MB)
    gf_freebsd_386(23.04 MB)
    gf_freebsd_amd64(26.62 MB)
    gf_linux_386(23.20 MB)
    gf_linux_amd64(26.27 MB)
    gf_linux_arm(23.07 MB)
    gf_linux_arm64(25.13 MB)
    gf_linux_ppc64le(25.30 MB)
    gf_netbsd_amd64(26.56 MB)
    gf_openbsd_amd64(26.60 MB)
    gf_windows_386.exe(23.93 MB)
    gf_windows_amd64.exe(26.93 MB)
  • v2.2.0-beta(Sep 29, 2022)

    What's Changed

    • fix glog bug by @wenzi1 in https://github.com/gogf/gf/pull/1844
    • Fix multiple gdb-group overrides by @qq375251855 in https://github.com/gogf/gf/pull/1890
    • feat/gfcli: replace gofmt&goimports with tools/imports by @BeanWei in https://github.com/gogf/gf/pull/1935
    • update sqlite driver to github.com/glebarez/go-sqlite by @hailaz in https://github.com/gogf/gf/pull/1932
    • add gstr.IsGNUVersion by @gqcn in https://github.com/gogf/gf/pull/1937
    • improve configuration parsing for command gen dao by @gqcn in https://github.com/gogf/gf/pull/1938
    • add cross building support for sqlite in command gen dao by @gqcn in https://github.com/gogf/gf/pull/1944
    • improve package glog; fix issue in package gtrace by @gqcn in https://github.com/gogf/gf/pull/1952
    • improve DeepCopy feature for bunch of components, especially the container and gtime by @gqcn in https://github.com/gogf/gf/pull/1956
    • add full week/month name support for pattern, add seconds fix feature in some delay seconds for package gcron by @gqcn in https://github.com/gogf/gf/pull/1960
    • add file export by @mingzaily in https://github.com/gogf/gf/pull/1959
    • gf gen service supports the generation of service files in the specified naming format by @L-fushen in https://github.com/gogf/gf/pull/1953
    • Fix goai repeat param by @mingzaily in https://github.com/gogf/gf/pull/1916
    • fix gf run custom arguments and gf gen dao specify config file path by @omegamt in https://github.com/gogf/gf/pull/1879
    • improve UT for package gcron by @gqcn in https://github.com/gogf/gf/pull/1966
    • update comment for ghttp.Request by @yuancjun in https://github.com/gogf/gf/pull/1968
    • redis add sentinel slaveOnly filed by @whosafe in https://github.com/gogf/gf/pull/1948
    • improve list tables for pgsql by @qinyuguang in https://github.com/gogf/gf/pull/1790
    • add support for slice types of pgsql by @jinmao88 in https://github.com/gogf/gf/pull/1881
    • gfcli: fix imports parse and update gofmt by @BeanWei in https://github.com/gogf/gf/pull/1979
    • some improves for ci yaml and package cmd/gf, database/gdb by @gqcn in https://github.com/gogf/gf/pull/1972
    • Improve the code coverage of the gset module by @huangqian1985 in https://github.com/gogf/gf/pull/1977
    • Feature/pgsql add pgsql unit test (#1853) by @chaggle in https://github.com/gogf/gf/pull/1973
    • fix go.sum of package contrib/drivers/pgsql by @gqcn in https://github.com/gogf/gf/pull/1980
    • Improve the code coverage of the gutil, grand module by @huangqian1985 in https://github.com/gogf/gf/pull/1989
    • Improve the code coverage of the gpool, gqueue, gring module by @huangqian1985 in https://github.com/gogf/gf/pull/1987
    • Improve the code coverage of the gvar module by @huangqian1985 in https://github.com/gogf/gf/pull/1982
    • Improve the code coverage of the gtype module by @huangqian1985 in https://github.com/gogf/gf/pull/1975
    • fix UT issue for package gcron by @gqcn in https://github.com/gogf/gf/pull/1992
    • new version v2.1.2 by @gqcn in https://github.com/gogf/gf/pull/1993
    • add init ctx feature by @gqcn in https://github.com/gogf/gf/pull/1995
    • fix(gdb): panic when concurrent db config map read and write. by @laushunyu in https://github.com/gogf/gf/pull/1997
    • fix concurrent safety for package gdb by @gqcn in https://github.com/gogf/gf/pull/1998
    • improve panic...recover of exit feature for package ghttp/gtimer/gfsnotify by @gqcn in https://github.com/gogf/gf/pull/2000
    • update docker folder by @whosafe in https://github.com/gogf/gf/pull/2007
    • improve package gerror, add HasCode/HasError function for package gerror by @gqcn in https://github.com/gogf/gf/pull/2006
    • Feature/ci cache by @hailaz in https://github.com/gogf/gf/pull/2010
    • ci updates to avoid repeated procedures by @hailaz in https://github.com/gogf/gf/pull/2020
    • use method name as its command name if no name defined in Meta of input struct for package gcmd by @gqcn in https://github.com/gogf/gf/pull/2019
    • improve field type check from db to golang by @gqcn in https://github.com/gogf/gf/pull/2023
    • fix gf-cli command 'gen dao' help infomation by @SSnoWich in https://github.com/gogf/gf/pull/2022
    • fix issue in gstr.Nl2Br by @gqcn in https://github.com/gogf/gf/pull/2028
    • feature: gen dao from tpl file path by @hailaz in https://github.com/gogf/gf/pull/2021
    • Update goai_path.go by @ar026 in https://github.com/gogf/gf/pull/2029
    • add MiddlewareJsonBody, improve error response handling for package ghttp by @gqcn in https://github.com/gogf/gf/pull/2032
    • fix issue #1648 by @gqcn in https://github.com/gogf/gf/pull/2033
    • improve header printing in json format for package glog; add golang v1.18 support for ci workflow by @gqcn in https://github.com/gogf/gf/pull/2037
    • fix precision lost of int64 for package gcfg by @qinyuguang in https://github.com/gogf/gf/pull/2044
    • improve gdb.CheckValueForLocalType for pgsql by @qinyuguang in https://github.com/gogf/gf/pull/2040
    • Feature/pgsql last insert by @hailaz in https://github.com/gogf/gf/pull/1994
    • add interface DB.CheckLocalTypeForField for package gdb by @gqcn in https://github.com/gogf/gf/pull/2059
    • fix gctx init slice bounds out of range on ios platform by @omegamt in https://github.com/gogf/gf/pull/2062
    • fix (clickhouse) : fix TableFields of clickhouse driver when using link configuration by @marunrun in https://github.com/gogf/gf/pull/2063
    • fixed inconsistent results when converting float64(NaN) to int/uint on multiple platforms by @DGuang21 in https://github.com/gogf/gf/pull/2064
    • add issue bot support (#2065) by @LingCoder in https://github.com/gogf/gf/pull/2066
    • Fix name of issue CI by @gqcn in https://github.com/gogf/gf/pull/2071
    • fix issue #2047 by @gqcn in https://github.com/gogf/gf/pull/2069
    • fix issue 1914 by @gqcn in https://github.com/gogf/gf/pull/2075
    • add more UT cases for package gview by @gqcn in https://github.com/gogf/gf/pull/2072
    • improve command init: add go mod tidy for init project by @gqcn in https://github.com/gogf/gf/pull/2083
    • v2.1.3 release by @gqcn in https://github.com/gogf/gf/pull/2084
    • fix issue in OpenAPI json marshaling of embedded struct definition; improve command gen service by @gqcn in https://github.com/gogf/gf/pull/2089
    • improve logging content printing for internal log by @gqcn in https://github.com/gogf/gf/pull/2090
    • fix field type check for package gdb by @gqcn in https://github.com/gogf/gf/pull/2086
    • fix issue #1921 by @gqcn in https://github.com/gogf/gf/pull/2091
    • new release v2.1.4 by @gqcn in https://github.com/gogf/gf/pull/2095
    • remove uint repeat conversion by @DGuang21 in https://github.com/gogf/gf/pull/2096
    • fix error message for package gtrace by @gqcn in https://github.com/gogf/gf/pull/2103
    • add GzipPathWriter for package gcompress by @gqcn in https://github.com/gogf/gf/pull/2116
    • TplTableNameCamelLowerCase remove space by @promisingMan in https://github.com/gogf/gf/pull/2109
    • project template update for command init by @gqcn in https://github.com/gogf/gf/pull/2117
    • fix issue bot :ignore issue which without labels by @LingCoder in https://github.com/gogf/gf/pull/2077
    • improve and add clear option for command gen dao/service by @gqcn in https://github.com/gogf/gf/pull/2123
    • fix issue incorrect struct name match pattern for command gen service by @gqcn in https://github.com/gogf/gf/pull/2125
    • fix: pgsql DoExec Transaction checks by @hailaz in https://github.com/gogf/gf/pull/2101
    • remove noisy internal logging content of package gcron by @gqcn in https://github.com/gogf/gf/pull/2141
    • fix issue in init context for package gctx by @gqcn in https://github.com/gogf/gf/pull/2138
    • feature/v2.2.0 by @gqcn in https://github.com/gogf/gf/pull/2154
    • add switch of brief stack for package gerror by @gqcn in https://github.com/gogf/gf/pull/2153
    • Feature/driver-dm fix something is invalid in dm by @zhonghuaxunGM in https://github.com/gogf/gf/pull/2158
    • add local db configuration support for package gdb by @gqcn in https://github.com/gogf/gf/pull/2161

    New Contributors

    • @qq375251855 made their first contribution in https://github.com/gogf/gf/pull/1890
    • @BeanWei made their first contribution in https://github.com/gogf/gf/pull/1935
    • @L-fushen made their first contribution in https://github.com/gogf/gf/pull/1953
    • @omegamt made their first contribution in https://github.com/gogf/gf/pull/1879
    • @whosafe made their first contribution in https://github.com/gogf/gf/pull/1948
    • @jinmao88 made their first contribution in https://github.com/gogf/gf/pull/1881
    • @laushunyu made their first contribution in https://github.com/gogf/gf/pull/1997
    • @SSnoWich made their first contribution in https://github.com/gogf/gf/pull/2022
    • @ar026 made their first contribution in https://github.com/gogf/gf/pull/2029
    • @marunrun made their first contribution in https://github.com/gogf/gf/pull/2063
    • @LingCoder made their first contribution in https://github.com/gogf/gf/pull/2066
    • @promisingMan made their first contribution in https://github.com/gogf/gf/pull/2109

    Full Changelog: https://github.com/gogf/gf/compare/v2.1.0...v2.2.0-beta

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(26.01 MB)
    gf_darwin_arm64(25.93 MB)
    gf_freebsd_386(23.04 MB)
    gf_freebsd_amd64(26.63 MB)
    gf_linux_386(23.20 MB)
    gf_linux_amd64(26.27 MB)
    gf_linux_arm(23.07 MB)
    gf_linux_arm64(25.13 MB)
    gf_linux_ppc64le(25.30 MB)
    gf_netbsd_amd64(26.55 MB)
    gf_openbsd_amd64(26.60 MB)
    gf_windows_386.exe(23.93 MB)
    gf_windows_amd64.exe(26.93 MB)
  • v2.1.4(Aug 26, 2022)

    What's Changed

    • fix issue in OpenAPI json marshaling of embedded struct definition; improve command gen service by @gqcn in https://github.com/gogf/gf/pull/2089
    • improve logging content printing for internal log by @gqcn in https://github.com/gogf/gf/pull/2090
    • fix field type check for package gdb by @gqcn in https://github.com/gogf/gf/pull/2086
    • fix issue #1921 by @gqcn in https://github.com/gogf/gf/pull/2091
    • new release v2.1.4 by @gqcn in https://github.com/gogf/gf/pull/2095
    • remove uint repeat conversion by @DGuang21 in https://github.com/gogf/gf/pull/2096

    Full Changelog: https://github.com/gogf/gf/compare/v2.1.3...v2.1.4

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(25.70 MB)
    gf_darwin_arm64(25.60 MB)
    gf_freebsd_386(22.77 MB)
    gf_freebsd_amd64(26.28 MB)
    gf_linux_386(22.92 MB)
    gf_linux_amd64(25.97 MB)
    gf_linux_arm(22.80 MB)
    gf_linux_arm64(24.79 MB)
    gf_linux_ppc64le(24.96 MB)
    gf_netbsd_amd64(26.22 MB)
    gf_openbsd_amd64(26.27 MB)
    gf_windows_386.exe(23.65 MB)
    gf_windows_amd64.exe(26.62 MB)
  • v2.1.3(Aug 22, 2022)

    What's Changed

    • add init ctx feature by @gqcn in https://github.com/gogf/gf/pull/1995
    • fix(gdb): panic when concurrent db config map read and write. by @laushunyu in https://github.com/gogf/gf/pull/1997
    • fix concurrent safety for package gdb by @gqcn in https://github.com/gogf/gf/pull/1998
    • improve panic...recover of exit feature for package ghttp/gtimer/gfsnotify by @gqcn in https://github.com/gogf/gf/pull/2000
    • change directory of command docker by @whosafe in https://github.com/gogf/gf/pull/2007
    • improve package gerror, add HasCode/HasError function for package gerror by @gqcn in https://github.com/gogf/gf/pull/2006
    • Feature/ci cache by @hailaz in https://github.com/gogf/gf/pull/2010
    • prevent repeated CI procedure of the same branch by @hailaz in https://github.com/gogf/gf/pull/2020
    • use method name as its command name if no name defined in Meta of input struct for package gcmd by @gqcn in https://github.com/gogf/gf/pull/2019
    • improve field type check from db to golang by @gqcn in https://github.com/gogf/gf/pull/2023
    • fix gf-cli command 'gen dao' help infomation by @SSnoWich in https://github.com/gogf/gf/pull/2022
    • fix issue in gstr.Nl2Br by @gqcn in https://github.com/gogf/gf/pull/2028
    • feature: gen dao from tpl file path by @hailaz in https://github.com/gogf/gf/pull/2021
    • Update goai_path.go by @ar026 in https://github.com/gogf/gf/pull/2029
    • add MiddlewareJsonBody, improve error response handling for package ghttp by @gqcn in https://github.com/gogf/gf/pull/2032
    • fix issue #1648 by @gqcn in https://github.com/gogf/gf/pull/2033
    • improve header printing in json format for package glog; add golang v1.18 support for ci workflow by @gqcn in https://github.com/gogf/gf/pull/2037
    • fix precision lost of int64 for package gcfg by @qinyuguang in https://github.com/gogf/gf/pull/2044
    • improve gdb.CheckValueForLocalType for pgsql by @qinyuguang in https://github.com/gogf/gf/pull/2040
    • Feature/pgsql last insert by @hailaz in https://github.com/gogf/gf/pull/1994
    • add interface DB.CheckLocalTypeForField for package gdb by @gqcn in https://github.com/gogf/gf/pull/2059
    • fix gctx init slice bounds out of range on ios platform by @omegamt in https://github.com/gogf/gf/pull/2062
    • fix (clickhouse) : fix function TableFields of clickhouse driver when configuration using link by @marunrun in https://github.com/gogf/gf/pull/2063
    • fixed inconsistent results when converting float64(NaN) to int/uint on multiple platforms by @DGuang21 in https://github.com/gogf/gf/pull/2064
    • add issue bot support (#2065) by @LingCoder in https://github.com/gogf/gf/pull/2066
    • Fix name of issue CI by @gqcn in https://github.com/gogf/gf/pull/2071
    • fix issue #2047 by @gqcn in https://github.com/gogf/gf/pull/2069
    • fix issue #1914 by @gqcn in https://github.com/gogf/gf/pull/2075
    • add more UT cases for package gview by @gqcn in https://github.com/gogf/gf/pull/2072
    • improve command init: add go mod tidy for init project by @gqcn in https://github.com/gogf/gf/pull/2083
    • v2.1.3 release by @gqcn in https://github.com/gogf/gf/pull/2084

    New Contributors

    • @laushunyu made their first contribution in https://github.com/gogf/gf/pull/1997
    • @SSnoWich made their first contribution in https://github.com/gogf/gf/pull/2022
    • @ar026 made their first contribution in https://github.com/gogf/gf/pull/2029
    • @marunrun made their first contribution in https://github.com/gogf/gf/pull/2063
    • @LingCoder made their first contribution in https://github.com/gogf/gf/pull/2066

    Full Changelog: https://github.com/gogf/gf/compare/v2.1.2...v2.1.3

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(25.70 MB)
    gf_darwin_arm64(25.60 MB)
    gf_freebsd_386(22.77 MB)
    gf_freebsd_amd64(26.29 MB)
    gf_linux_386(22.92 MB)
    gf_linux_amd64(25.96 MB)
    gf_linux_arm(22.80 MB)
    gf_linux_arm64(24.79 MB)
    gf_linux_ppc64le(24.96 MB)
    gf_netbsd_amd64(26.22 MB)
    gf_openbsd_amd64(26.28 MB)
    gf_windows_386.exe(23.65 MB)
    gf_windows_amd64.exe(26.62 MB)
  • v2.1.2(Jul 12, 2022)

    What's Changed

    • change sqlite from cgo package github.com/mattn/go-sqlite3 to none-cgo package github.com/glebarez/go-sqlite by @hailaz in https://github.com/gogf/gf/pull/1932
    • add gstr.IsGNUVersion by @gqcn in https://github.com/gogf/gf/pull/1937
    • improve configuration parsing for command gen dao by @gqcn in https://github.com/gogf/gf/pull/1938
    • add cross building support for sqlite in command gen dao by @gqcn in https://github.com/gogf/gf/pull/1944
    • improve package glog; fix issue in package gtrace by @gqcn in https://github.com/gogf/gf/pull/1952
    • improve DeepCopy feature for bunch of components, especially the container and gtime by @gqcn in https://github.com/gogf/gf/pull/1956
    • add full week/month name support for pattern, add seconds fix feature in some delay seconds for package gcron by @gqcn in https://github.com/gogf/gf/pull/1960
    • add file export by @mingzaily in https://github.com/gogf/gf/pull/1959
    • gf gen service supports the generation of service files in the specified naming format by @L-fushen in https://github.com/gogf/gf/pull/1953
    • Fix goai repeat param by @mingzaily in https://github.com/gogf/gf/pull/1916
    • fix gf run custom arguments and gf gen dao specify config file path by @omegamt in https://github.com/gogf/gf/pull/1879
    • improve UT for package gcron by @gqcn in https://github.com/gogf/gf/pull/1966
    • update comment for ghttp.Request by @yuancjun in https://github.com/gogf/gf/pull/1968
    • redis add sentinel slaveOnly filed by @whosafe in https://github.com/gogf/gf/pull/1948
    • improve list tables for pgsql by @qinyuguang in https://github.com/gogf/gf/pull/1790
    • add support of slice type for pgsql by @jinmao88 in https://github.com/gogf/gf/pull/1881
    • gfcli: fix imports parse and update gofmt by @BeanWei in https://github.com/gogf/gf/pull/1979
    • some improves for ci yaml and package cmd/gf, database/gdb by @gqcn in https://github.com/gogf/gf/pull/1972
    • Improve the code coverage of the gset module by @huangqian1985 in https://github.com/gogf/gf/pull/1977
    • Feature/pgsql add pgsql unit test (#1853) by @chaggle in https://github.com/gogf/gf/pull/1973
    • fix go.sum of package contrib/drivers/pgsql by @gqcn in https://github.com/gogf/gf/pull/1980
    • Improve the code coverage of the gutil, grand module by @huangqian1985 in https://github.com/gogf/gf/pull/1989
    • Improve the code coverage of the gpool, gqueue, gring module by @huangqian1985 in https://github.com/gogf/gf/pull/1987
    • Improve the code coverage of the gvar module by @huangqian1985 in https://github.com/gogf/gf/pull/1982
    • Improve the code coverage of the gtype module by @huangqian1985 in https://github.com/gogf/gf/pull/1975
    • fix UT issue for package gcron by @gqcn in https://github.com/gogf/gf/pull/1992
    • new version v2.1.2 by @gqcn in https://github.com/gogf/gf/pull/1993

    New Contributors

    • @L-fushen made their first contribution in https://github.com/gogf/gf/pull/1953
    • @omegamt made their first contribution in https://github.com/gogf/gf/pull/1879
    • @jinmao88 made their first contribution in https://github.com/gogf/gf/pull/1881

    Full Changelog: https://github.com/gogf/gf/compare/v2.1.1...v2.1.2

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(25.66 MB)
    gf_darwin_arm64(25.57 MB)
    gf_freebsd_386(22.74 MB)
    gf_freebsd_amd64(26.25 MB)
    gf_linux_386(22.89 MB)
    gf_linux_amd64(25.92 MB)
    gf_linux_arm(22.73 MB)
    gf_linux_arm64(24.78 MB)
    gf_linux_ppc64le(24.95 MB)
    gf_netbsd_amd64(26.18 MB)
    gf_openbsd_amd64(26.25 MB)
    gf_windows_386.exe(23.62 MB)
    gf_windows_amd64.exe(26.59 MB)
  • v2.1.1(Jun 24, 2022)

    What's Changed

    • fix glog bug by @wenzi1 in https://github.com/gogf/gf/pull/1844
    • Fix multiple gdb-group overrides by @qq375251855 in https://github.com/gogf/gf/pull/1890
    • feat/gfcli: replace gofmt&goimports with tools/imports by @BeanWei in https://github.com/gogf/gf/pull/1935

    New Contributors

    • @qq375251855 made their first contribution in https://github.com/gogf/gf/pull/1890

    Full Changelog: https://github.com/gogf/gf/compare/v2.1.0...v2.1.1

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(20.53 MB)
    gf_darwin_arm64(20.71 MB)
    gf_dragonfly_amd64(21.25 MB)
    gf_freebsd_386(18.30 MB)
    gf_freebsd_amd64(21.29 MB)
    gf_freebsd_arm(18.19 MB)
    gf_linux_386(18.43 MB)
    gf_linux_amd64(20.79 MB)
    gf_linux_arm(18.24 MB)
    gf_linux_arm64(20.04 MB)
    gf_linux_mips(19.92 MB)
    gf_linux_mips64(21.43 MB)
    gf_linux_mips64le(21.28 MB)
    gf_linux_mipsle(19.83 MB)
    gf_linux_ppc64(20.34 MB)
    gf_linux_ppc64le(20.13 MB)
    gf_netbsd_386(18.25 MB)
    gf_netbsd_amd64(21.24 MB)
    gf_netbsd_arm(18.12 MB)
    gf_openbsd_386(18.30 MB)
    gf_openbsd_amd64(21.31 MB)
    gf_openbsd_arm(18.19 MB)
    gf_solaris_amd64(21.18 MB)
    gf_windows_386.exe(19.18 MB)
    gf_windows_amd64.exe(21.28 MB)
  • v2.1.0(Jun 21, 2022)

    What's Changed

    • [fix bug] Fix redis cache adapter GetOrSetFunc, GetOrSetFuncLock meth… by @tiger1103 in https://github.com/gogf/gf/pull/1656
    • [fix] gf cli build missing suffix by @stardemo in https://github.com/gogf/gf/pull/1652
    • Improving gfile and gSesssion Code Coverage by @huangqian1985 in https://github.com/gogf/gf/pull/1632
    • Repeat 'len(s)'. by @chenzebinm4 in https://github.com/gogf/gf/pull/1651
    • Fix gdb Order by @FlyingBlazer in https://github.com/gogf/gf/pull/1520
    • Added Order() method support for gdb. by @zxr615 in https://github.com/gogf/gf/pull/1529
    • fix: server access logs contain the protocol used between the server … by @houseme in https://github.com/gogf/gf/pull/1657
    • fix: js link err by @houseme in https://github.com/gogf/gf/pull/1658
    • [fix bug] the default value of r.get is invalid by @arieslee in https://github.com/gogf/gf/pull/1659
    • gdb returns result when cache set failed by @qinyuguang in https://github.com/gogf/gf/pull/1660
    • improve ignore and up websocket 1.5.0 by @houseme in https://github.com/gogf/gf/pull/1684
    • fix some typos by @cuishuang in https://github.com/gogf/gf/pull/1697
    • feat: support custom listener by @Macrow in https://github.com/gogf/gf/pull/1683
    • Update README.MD by @xiaoping378 in https://github.com/gogf/gf/pull/1730
    • Feature - clickhouse driver by @DGuang21 in https://github.com/gogf/gf/pull/1616
    • avoid a single space at the end of a line. by @yuancjun in https://github.com/gogf/gf/pull/1735
    • fix issue #1747 by @qinyuguang in https://github.com/gogf/gf/pull/1749
    • fix issue #1755 by @qinyuguang in https://github.com/gogf/gf/pull/1759
    • add error of Save operation for pgsql by @happyinsect in https://github.com/gogf/gf/pull/1767
    • fix: swagger ignore "-" param. by @mingzaily in https://github.com/gogf/gf/pull/1789
    • add ExampleEncode function by @huangqian1985 in https://github.com/gogf/gf/pull/1795
    • feat: Report trace-compatible device host name or IP archive parameters by @houseme in https://github.com/gogf/gf/pull/1796
    • fix timezone bug when persisting *gtime.Time to db #1714 by @WesleyWu in https://github.com/gogf/gf/pull/1729
    • gf-cli Bug of generating Dao file of MSSQL by @wenzi1 in https://github.com/gogf/gf/pull/1818
    • Feature/mssql by @wenzi1 in https://github.com/gogf/gf/pull/1827
    • add support for .properties configuration file by @happyinsect in https://github.com/gogf/gf/pull/1806
    • add gClient ExampleNew function by @huangqian1985 in https://github.com/gogf/gf/pull/1823
    • mssql unit test by @wenzi1 in https://github.com/gogf/gf/pull/1843
    • Bug fix#1849 by @happyinsect in https://github.com/gogf/gf/pull/1851
    • Replace the Swagger JS CDN source from jsdelivr to unpkg.com by @chenghonour in https://github.com/gogf/gf/pull/1852
    • Fix/codecovci by @hailaz in https://github.com/gogf/gf/pull/1858
    • Feature/polaris feat: Add Polaris support by @houseme in https://github.com/gogf/gf/pull/1797
    • [ISSUE #1866] Fix/polaris logs dir and docker image by @houseme in https://github.com/gogf/gf/pull/1867
    • Feature/gsvc interface by @gqcn in https://github.com/gogf/gf/pull/1871
    • upgrade ClickHouse dependencies to V2 by @DGuang21 in https://github.com/gogf/gf/pull/1772
    • Fix/1748 issues #1748 by @houseme in https://github.com/gogf/gf/pull/1817
    • Improve the code coverage of the gtcp module by @huangqian1985 in https://github.com/gogf/gf/pull/1836
    • Feature/oracle by @wenzi1 in https://github.com/gogf/gf/pull/1869
    • fix gf gen service ignore watch file dir windows platform bug by @ddpmz in https://github.com/gogf/gf/pull/1889
    • Feature/sqlite ut by @hailaz in https://github.com/gogf/gf/pull/1882
    • Improve the code coverage of the gclient module by @huangqian1985 in https://github.com/gogf/gf/pull/1899
    • upgrade ClickHouse-Go dependencies to V2.0.15 by @DGuang21 in https://github.com/gogf/gf/pull/1904
    • Improve the code coverage of the gudp module by @huangqian1985 in https://github.com/gogf/gf/pull/1907
    • Improve the code coverage of the garray,glist module by @huangqian1985 in https://github.com/gogf/gf/pull/1908
    • Polaris Server Offical image support by @houseme in https://github.com/gogf/gf/pull/1911
    • Improve the code coverage of the gmap module by @huangqian1985 in https://github.com/gogf/gf/pull/1910
    • add context parameter by @LonelySally in https://github.com/gogf/gf/pull/1919
    • add tracing feature for package gproc by @gqcn in https://github.com/gogf/gf/pull/1923

    New Contributors

    • @tiger1103 made their first contribution in https://github.com/gogf/gf/pull/1656
    • @chenzebinm4 made their first contribution in https://github.com/gogf/gf/pull/1651
    • @cuishuang made their first contribution in https://github.com/gogf/gf/pull/1697
    • @Macrow made their first contribution in https://github.com/gogf/gf/pull/1683
    • @xiaoping378 made their first contribution in https://github.com/gogf/gf/pull/1730
    • @happyinsect made their first contribution in https://github.com/gogf/gf/pull/1767
    • @WesleyWu made their first contribution in https://github.com/gogf/gf/pull/1729
    • @ddpmz made their first contribution in https://github.com/gogf/gf/pull/1889

    Full Changelog: https://github.com/gogf/gf/compare/v2.0.0...v2.1.0

    中文发布记录

    https://goframe.org/display/gf/v2.1+2022-06-22

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(17.87 MB)
    gf_darwin_arm64(17.99 MB)
    gf_dragonfly_amd64(18.48 MB)
    gf_freebsd_386(15.95 MB)
    gf_freebsd_amd64(18.52 MB)
    gf_freebsd_arm(15.83 MB)
    gf_linux_386(16.07 MB)
    gf_linux_amd64(18.08 MB)
    gf_linux_arm(15.88 MB)
    gf_linux_arm64(17.51 MB)
    gf_linux_mips(17.35 MB)
    gf_linux_mips64(18.69 MB)
    gf_linux_mips64le(18.56 MB)
    gf_linux_mipsle(17.27 MB)
    gf_linux_ppc64(17.67 MB)
    gf_linux_ppc64le(17.48 MB)
    gf_netbsd_386(15.91 MB)
    gf_netbsd_amd64(18.47 MB)
    gf_netbsd_arm(15.81 MB)
    gf_openbsd_386(15.95 MB)
    gf_openbsd_amd64(18.54 MB)
    gf_openbsd_arm(15.83 MB)
    gf_solaris_amd64(18.42 MB)
    gf_windows_386.exe(16.73 MB)
    gf_windows_amd64.exe(18.52 MB)
  • v2.1.0-rc4(Jun 1, 2022)

    What's Changed

    • [ISSUE #1866] Fix/polaris logs dir and docker image by @houseme in https://github.com/gogf/gf/pull/1867
    • Feature/gsvc interface by @gqcn in https://github.com/gogf/gf/pull/1871
    • upgrade ClickHouse dependencies to V2 by @DGuang21 in https://github.com/gogf/gf/pull/1772
    • Fix/1748 issues #1748 by @houseme in https://github.com/gogf/gf/pull/1817
    • Improve the code coverage of the gtcp module by @huangqian1985 in https://github.com/gogf/gf/pull/1836
    • Feature/oracle by @wenzi1 in https://github.com/gogf/gf/pull/1869

    Full Changelog: https://github.com/gogf/gf/compare/v2.1.0-rc3...v2.1.0-rc4

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(17.83 MB)
    gf_darwin_arm64(17.94 MB)
    gf_dragonfly_amd64(18.43 MB)
    gf_freebsd_386(15.91 MB)
    gf_freebsd_amd64(18.47 MB)
    gf_freebsd_arm(15.82 MB)
    gf_linux_386(16.03 MB)
    gf_linux_amd64(18.04 MB)
    gf_linux_arm(15.87 MB)
    gf_linux_arm64(17.37 MB)
    gf_linux_mips(17.34 MB)
    gf_linux_mips64(18.61 MB)
    gf_linux_mips64le(18.49 MB)
    gf_linux_mipsle(17.26 MB)
    gf_linux_ppc64(17.66 MB)
    gf_linux_ppc64le(17.47 MB)
    gf_netbsd_386(15.87 MB)
    gf_netbsd_amd64(18.42 MB)
    gf_netbsd_arm(15.80 MB)
    gf_openbsd_386(15.92 MB)
    gf_openbsd_amd64(18.49 MB)
    gf_openbsd_arm(15.82 MB)
    gf_solaris_amd64(18.36 MB)
    gf_windows_386.exe(16.69 MB)
    gf_windows_amd64.exe(18.47 MB)
  • v2.1.0-rc2(May 19, 2022)

    What's Changed

    • Feature/mssql by @wenzi1 in https://github.com/gogf/gf/pull/1827
    • mssql unit test by @wenzi1 in https://github.com/gogf/gf/pull/1843
    • Bug fix#1849 by @happyinsect in https://github.com/gogf/gf/pull/1851
    • Replace the Swagger JS CDN source from jsdelivr to unpkg.com by @chenghonour in https://github.com/gogf/gf/pull/1852
    • Fix/codecovci by @hailaz in https://github.com/gogf/gf/pull/1858
    • Feature/polaris feat: Add Polaris support by @houseme in https://github.com/gogf/gf/pull/1797

    Full Changelog: https://github.com/gogf/gf/compare/v2.1.0-rc...v2.1.0-rc2

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(17.61 MB)
    gf_darwin_arm64(17.71 MB)
    gf_dragonfly_amd64(18.20 MB)
    gf_freebsd_386(15.70 MB)
    gf_freebsd_amd64(18.24 MB)
    gf_freebsd_arm(15.57 MB)
    gf_linux_386(15.81 MB)
    gf_linux_amd64(17.82 MB)
    gf_linux_arm(15.62 MB)
    gf_linux_arm64(17.25 MB)
    gf_linux_mips(17.09 MB)
    gf_linux_mips64(18.35 MB)
    gf_linux_mips64le(18.24 MB)
    gf_linux_mipsle(17.01 MB)
    gf_linux_ppc64(17.40 MB)
    gf_linux_ppc64le(17.21 MB)
    gf_netbsd_386(15.66 MB)
    gf_netbsd_amd64(18.19 MB)
    gf_netbsd_arm(15.56 MB)
    gf_openbsd_386(15.70 MB)
    gf_openbsd_amd64(18.25 MB)
    gf_openbsd_arm(15.57 MB)
    gf_solaris_amd64(18.13 MB)
    gf_windows_386.exe(16.47 MB)
    gf_windows_amd64.exe(18.25 MB)
  • v2.1.0-rc(May 17, 2022)

    What's Changed

    • [fix bug] Fix redis cache adapter GetOrSetFunc, GetOrSetFuncLock meth… by @tiger1103 in https://github.com/gogf/gf/pull/1656
    • [fix] gf cli build missing suffix by @stardemo in https://github.com/gogf/gf/pull/1652
    • Improving gfile and gSesssion Code Coverage by @huangqian1985 in https://github.com/gogf/gf/pull/1632
    • Repeat 'len(s)'. by @chenzebinm4 in https://github.com/gogf/gf/pull/1651
    • Fix gdb Order by @FlyingBlazer in https://github.com/gogf/gf/pull/1520
    • Added Order() method support for gdb. by @zxr615 in https://github.com/gogf/gf/pull/1529
    • fix: server access logs contain the protocol used between the server … by @houseme in https://github.com/gogf/gf/pull/1657
    • fix: js link err by @houseme in https://github.com/gogf/gf/pull/1658
    • [fix bug] the default value of r.get is invalid by @arieslee in https://github.com/gogf/gf/pull/1659
    • gdb returns result when cache set failed by @qinyuguang in https://github.com/gogf/gf/pull/1660
    • improve ignore and up websocket 1.5.0 by @houseme in https://github.com/gogf/gf/pull/1684
    • fix some typos by @cuishuang in https://github.com/gogf/gf/pull/1697
    • feat: support custom listener by @Macrow in https://github.com/gogf/gf/pull/1683
    • Update README.MD by @xiaoping378 in https://github.com/gogf/gf/pull/1730
    • Feature - clickhouse driver by @DGuang21 in https://github.com/gogf/gf/pull/1616
    • avoid a single space at the end of a line. by @yuancjun in https://github.com/gogf/gf/pull/1735
    • fix issue #1747 by @qinyuguang in https://github.com/gogf/gf/pull/1749
    • fix issue #1755 by @qinyuguang in https://github.com/gogf/gf/pull/1759
    • add error of Save operation for pgsql by @happyinsect in https://github.com/gogf/gf/pull/1767
    • fix: swagger ignore "-" param. by @mingzaily in https://github.com/gogf/gf/pull/1789
    • add ExampleEncode function by @huangqian1985 in https://github.com/gogf/gf/pull/1795
    • feat: Report trace-compatible device host name or IP archive parameters by @houseme in https://github.com/gogf/gf/pull/1796
    • fix timezone bug when persisting *gtime.Time to db #1714 by @WesleyWu in https://github.com/gogf/gf/pull/1729
    • gf-cli Bug of generating Dao file of MSSQL by @wenzi1 in https://github.com/gogf/gf/pull/1818
    • add support for .properties configuration file by @happyinsect in https://github.com/gogf/gf/pull/1806
    • add gClient ExampleNew function by @huangqian1985 in https://github.com/gogf/gf/pull/1823

    New Contributors

    • @tiger1103 made their first contribution in https://github.com/gogf/gf/pull/1656
    • @chenzebinm4 made their first contribution in https://github.com/gogf/gf/pull/1651
    • @cuishuang made their first contribution in https://github.com/gogf/gf/pull/1697
    • @Macrow made their first contribution in https://github.com/gogf/gf/pull/1683
    • @xiaoping378 made their first contribution in https://github.com/gogf/gf/pull/1730
    • @WesleyWu made their first contribution in https://github.com/gogf/gf/pull/1729

    Full Changelog: https://github.com/gogf/gf/compare/v2.0.0...v2.1.0-rc

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(17.50 MB)
    gf_darwin_arm64(17.61 MB)
    gf_dragonfly_amd64(18.10 MB)
    gf_freebsd_386(15.61 MB)
    gf_freebsd_amd64(18.13 MB)
    gf_freebsd_arm(15.48 MB)
    gf_linux_386(15.73 MB)
    gf_linux_amd64(17.72 MB)
    gf_linux_arm(15.53 MB)
    gf_linux_arm64(17.09 MB)
    gf_linux_mips(17.00 MB)
    gf_linux_mips64(18.26 MB)
    gf_linux_mips64le(18.14 MB)
    gf_linux_mipsle(16.92 MB)
    gf_linux_ppc64(17.24 MB)
    gf_linux_ppc64le(17.12 MB)
    gf_netbsd_386(15.58 MB)
    gf_netbsd_amd64(18.08 MB)
    gf_netbsd_arm(15.47 MB)
    gf_openbsd_386(15.62 MB)
    gf_openbsd_amd64(18.15 MB)
    gf_openbsd_arm(15.54 MB)
    gf_solaris_amd64(18.04 MB)
    gf_windows_386.exe(16.38 MB)
    gf_windows_amd64.exe(18.15 MB)
  • v2.0.5(Mar 31, 2022)

  • v2.0.4(Mar 14, 2022)

    What's Changed

    • [fix bug] Fix redis cache adapter GetOrSetFunc, GetOrSetFuncLock meth… by @tiger1103 in https://github.com/gogf/gf/pull/1656
    • [fix] gf cli build missing suffix by @stardemo in https://github.com/gogf/gf/pull/1652
    • Improving gfile and gSesssion Code Coverage by @huangqian1985 in https://github.com/gogf/gf/pull/1632
    • Repeat 'len(s)'. by @chenzebinm4 in https://github.com/gogf/gf/pull/1651
    • Fix gdb Order by @FlyingBlazer in https://github.com/gogf/gf/pull/1520
    • Added Order() method support for gdb. by @zxr615 in https://github.com/gogf/gf/pull/1529
    • fix: server access logs contain the protocol used between the server … by @houseme in https://github.com/gogf/gf/pull/1657
    • fix: js link err by @houseme in https://github.com/gogf/gf/pull/1658
    • [fix bug] the default value of r.get is invalid by @arieslee in https://github.com/gogf/gf/pull/1659

    New Contributors

    • @tiger1103 made their first contribution in https://github.com/gogf/gf/pull/1656
    • @chenzebinm4 made their first contribution in https://github.com/gogf/gf/pull/1651

    Full Changelog: https://github.com/gogf/gf/compare/v2.0.3...v2.0.4

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(17.31 MB)
    gf_darwin_arm64(17.41 MB)
    gf_dragonfly_amd64(17.91 MB)
    gf_freebsd_386(15.49 MB)
    gf_freebsd_amd64(17.95 MB)
    gf_freebsd_arm(15.44 MB)
    gf_linux_386(15.58 MB)
    gf_linux_amd64(17.51 MB)
    gf_linux_arm(15.41 MB)
    gf_linux_arm64(16.90 MB)
    gf_linux_mips(16.81 MB)
    gf_linux_mips64(18.08 MB)
    gf_linux_mips64le(17.95 MB)
    gf_linux_mipsle(16.73 MB)
    gf_linux_ppc64(17.06 MB)
    gf_linux_ppc64le(16.94 MB)
    gf_netbsd_386(15.45 MB)
    gf_netbsd_amd64(17.89 MB)
    gf_netbsd_arm(15.30 MB)
    gf_openbsd_386(15.49 MB)
    gf_openbsd_amd64(17.96 MB)
    gf_openbsd_arm(15.44 MB)
    gf_solaris_amd64(17.84 MB)
    gf_windows_386.exe(16.21 MB)
    gf_windows_amd64.exe(17.92 MB)
  • v2.0.0(Mar 8, 2022)

    What's Changed

    • Fix float sorting by @weicut in https://github.com/gogf/gf/pull/1265
    • Fixed incorrect type conversion by @weicut in https://github.com/gogf/gf/pull/1277
    • add timezone configuration for package gdb by @qinyuguang in https://github.com/gogf/gf/pull/1276
    • fix TableFields for pgsql by @imloama in https://github.com/gogf/gf/pull/1280
    • add gutil.SliceToMapWithColumnAsKey by @qinyuguang in https://github.com/gogf/gf/pull/1284
    • Otel by @gqcn in https://github.com/gogf/gf/pull/1316
    • Update gdb_model_fields.go by @lgyaxx in https://github.com/gogf/gf/pull/1328
    • add log level prefix color by @wangle201210 in https://github.com/gogf/gf/pull/1312
    • update pgsql pri error #1340 by @zcool321 in https://github.com/gogf/gf/pull/1346
    • add basic action scripts by @stardemo in https://github.com/gogf/gf/pull/1347
    • Update go.mod by @houseme in https://github.com/gogf/gf/pull/1360
    • Update Readme ,Github Action badge by @stardemo in https://github.com/gogf/gf/pull/1365
    • garray code formatted by @jroam in https://github.com/gogf/gf/pull/1361
    • fix print log on windows by @wangle201210 in https://github.com/gogf/gf/pull/1369
    • add func SetWriterColorEnable for file log color by @wangle201210 in https://github.com/gogf/gf/pull/1374
    • fix tcp http demo error content-length by @ansionfor in https://github.com/gogf/gf/pull/1372
    • fix #1389 by @houseme in https://github.com/gogf/gf/pull/1390
    • [feature] upgrade opentelemetry v1.0.0-RC3 by @houseme in https://github.com/gogf/gf/pull/1395
    • Example for glist by @mingzaily in https://github.com/gogf/gf/pull/1449
    • Hotfix/i1421 by @danvinhe in https://github.com/gogf/gf/pull/1432
    • fix issue in package gini by @osgochina in https://github.com/gogf/gf/pull/1429
    • Validator Rule Example by @huangqian1985 in https://github.com/gogf/gf/pull/1455
    • Update garray_z_example_str_test.go by @visualsun in https://github.com/gogf/gf/pull/1454
    • Bugfix/i1435 by @danvinhe in https://github.com/gogf/gf/pull/1438
    • gstrset Example Finish by @Evil-king in https://github.com/gogf/gf/pull/1453
    • gcache Examples by @564104865 in https://github.com/gogf/gf/pull/1452
    • Create garray_z_example_sorted_str_test.go by @visualsun in https://github.com/gogf/gf/pull/1459
    • add examples for InitSet of package gset by @Evil-king in https://github.com/gogf/gf/pull/1461
    • add examples for package gregex by @DGuang21 in https://github.com/gogf/gf/pull/1450
    • add examples for container gqueue by @mingzaily in https://github.com/gogf/gf/pull/1466
    • update cache by @564104865 in https://github.com/gogf/gf/pull/1467
    • add gtime example test by @ansionfor in https://github.com/gogf/gf/pull/1474
    • Upgrade opentelemetry version to 1.2.0. Improved import, by group improt by @houseme in https://github.com/gogf/gf/pull/1478
    • gring Example by @huangqian1985 in https://github.com/gogf/gf/pull/1480
    • improve code by @houseme in https://github.com/gogf/gf/pull/1481
    • improve code 'if block ends with a return statement, so drop this els… by @houseme in https://github.com/gogf/gf/pull/1483
    • add examples for package gstr by @giamyl in https://github.com/gogf/gf/pull/1462
    • add ci notice for go fmt by @stardemo in https://github.com/gogf/gf/pull/1487
    • add examples for package gfile by @hailaz in https://github.com/gogf/gf/pull/1463
    • gmap Example and gvalid Example by @huangqian1985 in https://github.com/gogf/gf/pull/1489
    • order by null is not escaped by @zxr615 in https://github.com/gogf/gf/pull/1499
    • remove unnecessary code by @mojo-zd in https://github.com/gogf/gf/pull/1495
    • add gvar example by @Hamster601 in https://github.com/gogf/gf/pull/1486
    • BTree Example by @huangqian1985 in https://github.com/gogf/gf/pull/1496
    • AVLTree Example And RedBlackTree Example by @huangqian1985 in https://github.com/gogf/gf/pull/1500
    • update MarshalJSON example by @ansionfor in https://github.com/gogf/gf/pull/1501
    • pull request by gfile example by @jqb44179 in https://github.com/gogf/gf/pull/1505
    • feat:add trace db.statement、host.name by @houseme in https://github.com/gogf/gf/pull/1506
    • feat(fix bug , add nexttime feature): by @kingeasternsun in https://github.com/gogf/gf/pull/1384
    • Update README.MD by @houseme in https://github.com/gogf/gf/pull/1511
    • fix a comment error in IsSubDomain by @victory460 in https://github.com/gogf/gf/pull/1509
    • ghttp_request.go GetRemoteIp ipv6 fix by @Hades300 in https://github.com/gogf/gf/pull/1508
    • Validator Function Example by @huangqian1985 in https://github.com/gogf/gf/pull/1510
    • gpool Function Example by @huangqian1985 in https://github.com/gogf/gf/pull/1517
    • gstr Example Function by @huangqian1985 in https://github.com/gogf/gf/pull/1521
    • tidy gstr files by @huangqian1985 in https://github.com/gogf/gf/pull/1527
    • feat:improve tracing by @houseme in https://github.com/gogf/gf/pull/1524
    • support manipulate pg.Array type data by @starccck in https://github.com/gogf/gf/pull/1535
    • Recurse map fields inside structs by @eh-steve in https://github.com/gogf/gf/pull/1546
    • gdb pgsql skip dropped fields by @qinyuguang in https://github.com/gogf/gf/pull/1566
    • change cache key to gcache:md5(sql) for package gdb by @larryclean in https://github.com/gogf/gf/pull/1555
    • gdb Ping with context by @qinyuguang in https://github.com/gogf/gf/pull/1574
    • Update Github Action badge by @stardemo in https://github.com/gogf/gf/pull/1595
    • gjson Example Function by @huangqian1985 in https://github.com/gogf/gf/pull/1610
    • Improving gjson Code Coverage by @huangqian1985 in https://github.com/gogf/gf/pull/1623
    • Improving gcmd Code Coverage by @huangqian1985 in https://github.com/gogf/gf/pull/1628
    • revert(fix bug , add nexttime feature): ServeFileDownload File name C… by @wangbs95 in https://github.com/gogf/gf/pull/1636
    • fix(fix bug , add nexttime feature): ServeFileDownload filename doubl… by @wangbs95 in https://github.com/gogf/gf/pull/1637
    • ghttp: add cookie security configurations by @FlyingBlazer in https://github.com/gogf/gf/pull/1549

    New Contributors

    • @weicut made their first contribution in https://github.com/gogf/gf/pull/1265
    • @imloama made their first contribution in https://github.com/gogf/gf/pull/1280
    • @lgyaxx made their first contribution in https://github.com/gogf/gf/pull/1328
    • @osgochina made their first contribution in https://github.com/gogf/gf/pull/1429
    • @visualsun made their first contribution in https://github.com/gogf/gf/pull/1454
    • @Evil-king made their first contribution in https://github.com/gogf/gf/pull/1453
    • @564104865 made their first contribution in https://github.com/gogf/gf/pull/1452
    • @giamyl made their first contribution in https://github.com/gogf/gf/pull/1462
    • @mojo-zd made their first contribution in https://github.com/gogf/gf/pull/1495
    • @Hamster601 made their first contribution in https://github.com/gogf/gf/pull/1486
    • @kingeasternsun made their first contribution in https://github.com/gogf/gf/pull/1384
    • @victory460 made their first contribution in https://github.com/gogf/gf/pull/1509
    • @Hades300 made their first contribution in https://github.com/gogf/gf/pull/1508
    • @starccck made their first contribution in https://github.com/gogf/gf/pull/1535
    • @eh-steve made their first contribution in https://github.com/gogf/gf/pull/1546
    • @larryclean made their first contribution in https://github.com/gogf/gf/pull/1555
    • @wangbs95 made their first contribution in https://github.com/gogf/gf/pull/1636

    Full Changelog: https://github.com/gogf/gf/compare/v1.16.0...v2.0.0

    中文发布记录

    https://goframe.org/display/gf/v2.0+2022-03-09

    Source code(tar.gz)
    Source code(zip)
    gf_darwin_amd64(17.30 MB)
    gf_darwin_arm64(17.40 MB)
    gf_dragonfly_amd64(17.90 MB)
    gf_freebsd_386(15.48 MB)
    gf_freebsd_amd64(17.94 MB)
    gf_freebsd_arm(15.44 MB)
    gf_linux_386(15.58 MB)
    gf_linux_amd64(17.50 MB)
    gf_linux_arm(15.34 MB)
    gf_linux_arm64(16.90 MB)
    gf_linux_mips(16.81 MB)
    gf_linux_mips64(18.09 MB)
    gf_linux_mips64le(17.95 MB)
    gf_linux_mipsle(16.73 MB)
    gf_linux_ppc64(17.06 MB)
    gf_linux_ppc64le(16.94 MB)
    gf_netbsd_386(15.44 MB)
    gf_netbsd_amd64(17.89 MB)
    gf_netbsd_arm(15.30 MB)
    gf_openbsd_386(15.49 MB)
    gf_openbsd_amd64(17.95 MB)
    gf_openbsd_arm(15.37 MB)
    gf_solaris_amd64(17.83 MB)
    gf_windows_386(16.21 MB)
    gf_windows_amd64(17.90 MB)
Owner
GoFrame
The GoFrame Organization.
GoFrame
Package macaron is a high productive and modular web framework in Go.

Macaron Package macaron is a high productive and modular web framework in Go. Getting Started The minimum requirement of Go is 1.6. To install Macaron

Macaron 3.3k Jan 2, 2023
Mango is a modular web-application framework for Go, inspired by Rack, and PEP333.

Mango Mango is a modular web-application framework for Go, inspired by Rack and PEP333. Note: Not actively maintained. Overview Mango is most of all a

Paul Bellamy 371 Nov 17, 2022
hiboot is a high performance web and cli application framework with dependency injection support

Hiboot - web/cli application framework About Hiboot is a cloud native web and cli application framework written in Go. Hiboot is not trying to reinven

hidevops.io 179 Nov 20, 2022
A powerful go web framework for highly scalable and resource efficient web application

webfr A powerful go web framework for highly scalable and resource efficient web application Installation: go get -u github.com/krishpranav/webfr Exa

Krisna Pranav 13 Nov 28, 2021
A powerful go web framework for highly scalable and resource efficient web application

A powerful go web framework for highly scalable and resource efficient web application

null 22 Oct 3, 2022
Goal is a toolkit for high productivity web development in Go language in the spirit of Revel Framework that is built around the concept of code generation.

Goal Goal is a set of tools for high productivity web development in Go language. Goal, being mostly inspired by Revel Framework and its discussions,

null 88 Sep 27, 2021
A fantastic modular Go web framework boiled with black magic.

A fantastic modular Go web framework boiled with black magic. Getting started The minimum requirement of Go is 1.16. To install Flamego: go get github

Flamego 431 Dec 25, 2022
Modular C2 framework aiming to ease post exploitation for red teamers.

test.mp4 testvideo.mp4 Usage: Inside the command server you can reference beacons using either their list id or their unique id. For example if the ou

meet 175 Dec 17, 2022
GoFarm is an Application Development Framework for especially Backend Developer with Golang

What is GoFarm GoFarm is an Application Development Framework for especially Backend Developer with Golang. Our goal is to develop easier, standardize

Alvin Leonardo 2 Dec 9, 2021
Dragon 🐲 🐲 🐲 is a lightweight high performance web framework with Go for the feature and comfortable develop.

Dragon project new link start dragon ab performance Dragon ?? ?? ?? is a lightweight high performance web framework with Go for the feature and comfor

azerothyang 0 Sep 6, 2022
Hexya business application development framework

Hexya Hexya is an open source ERP and a business application development framework written in Go. This repository houses the business application deve

Hexya 362 Jan 5, 2023
beego is an open-source, high-performance web framework for the Go programming language.

Beego Beego is used for rapid development of enterprise application in Go, including RESTful APIs, web apps and backend services. It is inspired by To

astaxie 592 Jan 1, 2023
High performance, minimalist Go web framework

Supported Go versions As of version 4.0.0, Echo is available as a Go module. Therefore a Go version capable of understanding /vN suffixed imports is r

LabStack LLC 24.6k Jan 2, 2023
Gearbox :gear: is a web framework written in Go with a focus on high performance

gearbox ⚙️ is a web framework for building micro services written in Go with a focus on high performance. It's built on fasthttp which is up to 10x fa

Gearbox 696 Jan 3, 2023
Gearbox :gear: is a web framework written in Go with a focus on high performance

gearbox ⚙️ is a web framework for building micro services written in Go with a focus on high performance. It's built on fasthttp which is up to 10x fa

Gearbox 695 Dec 29, 2022
High performance, simple Go web framework

Elton Elton的实现参考了koa以及echo,中间件的调整均为洋葱模型:请求由外至内,响应由内至外。主要特性如下: 处理函数(中间件)均以返回error的形式响应出错,方便使用统一的出错处理中间件将出错统一转换为对应的输出(JSON),并根据出错的类型等生成各类统计分析 成功响应数据直接赋值

Tree Xie 63 Dec 17, 2022
beego is an open-source, high-performance web framework for the Go programming language.

Beego Beego is used for rapid development of enterprise application in Go, including RESTful APIs, web apps and backend services. It is inspired by To

beego Framework 29.3k Jan 8, 2023
letgo is an open-source, high-performance web framework for the Go programming language.

high-performance Lightweight web framework for the Go programming language. golang web framework,高可用golang web框架,go语言 web框架 ,go web

wjp 350 Sep 23, 2022