新特性
对
gform
完成重构,以提高扩展性,并修复部分细节问题、完善单元测试用例(https://gfer.me/database/orm/index);WebServer
路由注册新增分组路由特性(https://gfer.me/net/ghttp/group);WebServer
新增Rewrite
路由重写特性(https://gfer.me/net/ghttp/static);增加框架运行时对开发环境的自动识别;
增加了
Travis CI
自动化构建/测试;
新功能
改进
WebServer
静态文件服务功能,增加SetStaticPath
/AddStaticPath
方法(https://gfer.me/net/ghttp/static);gform
新增Filter
链式操作方法,用于过滤参数中的非表字段键值对(https://gfer.me/database/orm/linkop);gcache
新增Data
方法,用以获取所有的缓存数据项;gredis
增加GetConn
方法获取原生redis连接对象;
功能改进
改进
gform
的Where
方法,支持slice
类型的参数,并更方便地支持in
操作查询(https://gfer.me/database/orm/linkop);改进
gproc
进程间通信数据结构,将pid
字段从16bit
扩展为24bit
;改进
gconv
/gmap
/garray
,增加若干操作方法;改进
gview
模板引擎中的date
内置函数,当给定的时间戳为空时打印当前的系统时间;改进
gview
模板引擎中,当打印的变量不存在时,显示为空(标准库默认显示为);改进
WebServer
,去掉HANGUP
的信号监听,避免程序通过nohup
运行时产生异常退出问题;改进
gcache
性能,并完善基准测试;
Bug Fix
修复
gcache
在非LRU特性开启时的缓存关闭资源竞争问题,并修复doSetWithLockCheck
内部方法的返回值问题;修复
grand.intn
内部方法在x86
架构下的随机数位溢出问题;修复
gbinary
中Int
方法针对[]byte
参数长度自动匹配造成的字节长度溢出问题;修复
gjson
由于官方标准库json
不支持map[interface{}]*
类型造成的Go变量编码问题;修复
garray
中部分方法的数据竞争问题,修复二分查找排序问题;修复
ghttp.Request.GetVar
方法获取参数问题;修复
gform
的数据库连接池不起作用的问题;
GF(Go Frame)
是一款模块化、松耦合、轻量级、高性能的Go应用开发框架。支持热重启、热更新、多域名、多端口、多服务、HTTP/HTTPS、动态路由等特性 ,并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、服务注册、配置管理、模板引擎、数据校验、分页管理、数据库ORM等等等等, 并且提供了数十个内置核心开发模块集,如:缓存、日志、时间、命令行、二进制、文件锁、内存锁、对象池、连接池、数据编码、进程管理、进程通信、文件监控、定时任务、TCP/UDP组件、 并发安全容器等等等等等等。
安装
go get -u gitee.com/johng/gf
或者 go.mod
require gitee.com/johng/gf latest
限制
golang版本 >= 1.9.2
架构
文档
使用
package main import ( "gitee.com/johng/gf/g" "gitee.com/johng/gf/g/net/ghttp" ) func main() { s := g.Server() s.BindHandler("/", func(r *ghttp.Request) { r.Response.Write("Hello World") }) s.Run() }