gf/RELEASE.1.MD

42 KiB
Raw Blame History

v1.8.0 (2019-07-15)

新功能改进

  1. 框架目前 69 个开发模块(不包括内部模块),原生代码 65302 行(不包含第三包依赖包),单元测试覆盖率达到77%
  2. 新增gerror错误处理模块:https://goframe.org/errors/gerror/index
  3. 改进gcharset字符编码转换模块,支持更多的字符集:https://goframe.org/encoding/gcharset/index
  4. 新增gmutex模块,基于channel实现的高级互斥锁模块,支持更丰富的互斥锁特性:https://goframe.org/os/gmutex/index
  5. 改进glog日志模块:
  6. 改进gdb数据库ORM模块
  7. 改进gconv数据转换模块:
    • 对结构体对象转换时支持更多的标签:gconv/c/json
    • 支持*struct/[]struct/[]*struct自动初始化创建对象/数组:https://goframe.org/util/gconv/struct
    • 新增Strusts/StrctsDeep方法,用于结构体数组的递归转换;
    • 新增StructDeep方法,用于对结构体对象的递归转换;
    • 新增MapDeep方法,用于对结构体属性的递归转换;
  8. 改进ghttp模块:
    • 改进ghttp模块的分组路由功能,完善逻辑处理细节,程序更加稳健;
    • 改进ghttp.Request.Get*ToStruct方法,支持params/param/p标签,支持结构体递归转换,并且支持**struct参数的对象自动初始化;
    • 改进ghttp.CORSDefault的跨域设置参数,AllowOrigin参数调整为*
  9. 改进gvalid数据校验模块:
  10. 改进gtcpTCP通信模块
  11. 改进gproc模块的通信数据结构,并使用gtcp的轻量级包协议重构消息发送逻辑;
  12. 改进gqueue模块增加数据同步缓冲机制,解决大数据量下的内存占用及延迟问题;
  13. 改进gmlock模块,使用gmutex模块替换内部的互斥锁,增加更多的操作方法;
  14. 改进gaes加密模块,增加CBC模式的加密/解密方法:
  15. 改进garray.Range/SubSlice方法,改进设计,提高性能;
  16. 改进gjson/gparser模块实现MarshalJSON接口以实现自定义的JSON数据格式转换;
  17. 改进crypto分类下模块的方法返回值,增加error错误变量返回,以保证更严谨的接口设计风格;
  18. 改进gbase64模块,输入输出类型发生改变,并增加多个相关方法;
  19. 改进gflock修改方法名UnLockUnlock,新增IsRLocked方法;
  20. 新增gfile.CopyFile/CopyDir方法,用于文件及目录的复制;
  21. 改进gjson/gparser/gvar/gcfg模块增加更多的类型转换方法;
  22. 改进gcache模块,过期时间参数支持time.Duration类型;
  23. 新增internal/structs包,强大且便捷的结构体解析,并改进框架中所有涉及到结构体反射处理的模块;
  24. 改进gbinary增加封装方法对BigEndian的支持;

Bug Fix

  1. 修复garray.Search返回值问题;
  2. 修复garray.Contains, garray.New*ArrayFromCopy方法逻辑问题;
  3. 修复gjson.Remove删除slice参数问题;
  4. 修复gtree.AVLTree.Remove方法返回值问题;
  5. 修复gqueue.Size不准确的大小问题;
  6. 修复queue.Close问题;
  7. 修复gcache.GetOrSetLockFunc当回调函数返回nil结果时的死锁问题;
  8. 修复gfsnotify.Add方法默认递归监控添加失效问题;
  9. 修复gdb.Model.Scan在某些参数类型下的失效问题;

注意事项

请注意以上粗体文字部分,如有使用,在您升级时可能会出现不兼容性。

v1.7.0 (2019-06-10)

新功能/改进

  1. 重构改进glog模块:
  2. 重构改进gmap模块:
    • 增加更多数据格式支持:HashMap/ListMap/TreeMap
    • 简化类型名称,如gmap.StringInterfaceMap简化为gmap.StrAnyMap
    • 改进Map/Keys/Values方法以提高性能
    • 修改BatchSet/BatchRemove方法名为Sets/Removes
    • 新增更多功能方法支持:https://goframe.org/container/gmap/index
  3. 改进gtime时间模块:
  4. 改进gdb数据库模块:
    • 增加对继承结构体的数据转换支持:https://goframe.org/database/gdb/senior
    • 新增GetLastSql方法用以在调试模式下获取最近一条执行的SQL语句
    • 其他的细节处理改进
  5. 改进gtcp通信模块:
  6. 改进gconv类型转换模块
    • 修改gconv.TimeDuration转换方法名称为gconv.Duration
    • 新增gconv.StructDeepgconv.MapDeep方法,支持递归转换
    • 详见开发文档:https://goframe.org/util/gconv/struct
  7. 改进ghttp模块:
    • 日志输出增加http/https字段:https://goframe.org/net/ghttp/logs
    • 新增ghttp.Server.SetKeepAlive设置方法,用以开启/关闭KeepAlive特性
    • 增加ghttp.Request.GetUrl方法用以获取当前完整的URL请求地址
    • ghttp.Client客户端支持开发者自定义Transport属性,ghttp.Client.Post方法支持浏览器模式https://goframe.org/net/ghttp/client
  8. 新增gtree树形数据结构容器支持:https://goframe.org/container/gtree/index
  9. 改进gudp通信模块,具体请参考开发文档:https://goframe.org/net/gudp/index
  10. 改进gcfg配置管理模块,所有Get*方法增加默认值支持:https://goframe.org/os/gcfg/index
  11. gredis模块新增DoVar/ReceiveVar方法以便于开发者对执行结果进行灵活的数据格式转换:https://goframe.org/database/gredis/index
  12. gcache模块BatchSet/BatchRemove方法名修改为Sets/Removes
  13. 改进gjson/gparser模块,增加更多方法:https://goframe.org/encoding/gjson/index
  14. 改进gfile.MainPkgPath方法,以支持不同平台的开发环境;
  15. 改进grpool协程池模块,提高执行性能:https://goframe.org/os/grpool/index
  16. 改进TryCatch方法,当开发者不传递Catch参数时,默认抑制并忽略错误的处理
  17. 改进gmlock模块,增加TryLockFunc/TryRLockFunc方法,并且为gmlock.Mutex高级互斥锁对象增加TryLockFunc/TryRLockFunc方法
  18. 去除gvar.VarRead接口类型支持

Bug Fix

  1. 解决gdb模块与其他第三方ORM模块同时使用的冲突;
  2. 修复gcron.AddOnce方法的细节逻辑问题;
  3. 修复内部empty模块的IsEmpty方法对结构体属性的空校验错误;
  4. 修复gview模板引擎的并发安全问题;
  5. 修复ghttp.Server的SESSION初始化过期时间问题

v1.6.0 (2019-04-09)

新功能/改进

  1. gcron定时任务模块增加运行日志记录功能:https://goframe.org/os/gcron/index
  2. gredis增加全局分组配置功能,并增加更多的配置选项maxIdle/maxActive/idleTimeout/maxConnLifetimehttps://goframe.org/database/gredis/index
  3. gcfg模块增加更多的默认配置文件检索路径,并且增加全局分组配置特性,增加Instance单例方法:https://goframe.org/os/gcfg/index
  4. gview模块增加更多的默认配置文件检索路径,并且增加Instance单例方法:https://goframe.org/os/gview/index
  5. ghttp模块新功能及改进:
    • 新增CORSHTTP(S)跨域请求特性: https://goframe.org/net/ghttp/cors
    • 增加TLSConfig配置功能;
    • 去掉路由注册方法的error返回值,当产生注册错误时直接终端打印错误/输出到日志文件;
    • 增加在HTTP Code 302跳转时的Set-Cookie支持;
    • 增加对SESSION ID的安全性检查;
    • 增加对基于HTTPSWebSocket支持(WSShttps://goframe.org/net/ghttp/websocket/index
    • Request对象增加Error方法,用于输出自定义错误信息到WebServer错误日志中;
    • 其他一些改进;
  6. gdb模块新功能及改进:
    • 新增Instance单例管理方法;
    • 新增Structs/Scan链式操作方法,gdb.DB/TX新增GetStructs/GetScan方法,用于结果集struct/slice映射转换:https://goframe.org/database/gdb/chaining
    • 新增Safe链式操作方法(默认非并发安全),用于链式安全控制:https://goframe.org/database/gdb/chaining
    • Where链式操作方法改进:
      • 方法支持任意的string/map/slice/struct/*struct类型;
      • 逻辑调整,当链式操作中存在多个Where方法调用时,自动转换为And条件;
      • 支持slice条件参数,常用在SELECT IN查询中,例如:Where("uid IN(?)", g.Slice{1,2,3})
      • 支持在map类型条件参数的key中传递条件,例如:Where(g.Map{"uid>?", uid})
  7. gconvgvalid模块改进并去掉对私有struct方法属性的转换/校验;
  8. gconv.Map转换方法新增对json tag: -, omitempty的支持: https://goframe.org/util/gconv/map
  9. gstr模块新增 ReplaceI/ReplaceIByArray/ReplaceIByMap大小写非敏感替换方法;
  10. gutil模块增加IsEmpty方法用于判断给定变量是否为空整型0, 布尔false, slice/map长度为0, 其他为nil的情况判断为空并增加快捷方法g.IsEmpty
  11. gutil模块增加Export方法,用于导出返回格式化打印的变量内容字符串,并增加快捷方法g.Export
  12. gspath增加缓存及非缓存检索检索方法Search/SearchWithCache
  13. gjson模块增加默认的UseNumber功能支持;
  14. gmap增加SetIfNotExistFunc/SetIfNotExistFuncLock方法;
  15. 迁移greuseport模块到新的仓库:https://github.com/gogf/greuseport
  16. 大量的单元测试完善;

Bug Fix

  1. 修复gqueue模块的资源竞争问题;
  2. 修复gconv.GTime转换失败问题;
  3. 修复gconv.String在转换int参数时字节溢出问题;
  4. 修复ghttp.RequestHTTP Basic Auth校验问题;
  5. 修复gxml针对于非UTF-8编码内容转换的并发安全问题;
  6. 修复gtime部分FormatG&j)格式失效问题;
  7. 修复gudp.Conn对象的RemoteAddr获取客户端连接地址方法问题;
  8. 修复gmap/gcache模块的GetOrSetFuncLock方法,增加对回调方法返回值的nil判断只有非nil返回值才会被保存

v1.5.8 (2019-02-28)

新特性

  1. 主库从gitee迁移到了github( https://github.com/gogf/gf )gitee作为镜像站用于国内的代码贡献及ISSUE提交迁移说明详见https://goframe.org/upgradeto150
  2. 对常用的container数组模块: garray做了大量改进/完善工作新增大量常用方法并完善单元测试用例及方法注释详见API文档https://godoc.org/github.com/gogf/gf/container/garray
  3. 对常用的container集合模块: gset做了大量改进/完善工作新增大量常用方法并完善单元测试用例及方法注释详见API文档https://godoc.org/github.com/gogf/gf/container/gset
  4. 对常用的containerMAP模块: gmap做了大量改进/完善工作新增大量常用方法并完善单元测试用例及方法注释详见API文档https://godoc.org/github.com/gogf/gf/container/gmap
  5. 对常用的字符串模块: gstr做了大量改进/完善工作新增大量常用方法并完善单元测试用例及方法注释详见API文档https://godoc.org/github.com/gogf/gf/text/gstr
  6. 改进gform中对struct/*struct参数的支持,*Insert/*Save/*Replace/*Update/Where/Data方法的参数调整为interface{}类型,并支持任意类型的: string/map/slice/struct/*struct参数传递,具体请参考:https://goframe.org/database/orm/chaining
  7. 新增/完善若干模块的单元测试用例, 包括:gvalid/gregex/garray/gset/gmap/gstr/gconv/ghttp/gdb
  8. 由于gkafka模块比较重,且不是框架核心模块,因此将该模块迁移到新的仓库中独立管理,并去掉相关依赖包:https://github.com/gogf/gkafka
  9. 新增greuseport模块用以实现TCP的REUSEPORT特性:https://godoc.org/github.com/gogf/gf/net/greuseport

新功能/改进

  1. 去掉模板引擎内置变量中自动初始化session对象带来的内存占用问题;
  2. ghttp.Client改进,增加若干方法,详见:https://goframe.org/net/ghttp/client
  3. ghttp分组路由增加COMMON方法,用以注册常用的HTTP METHOD(GET/PUT/POST/DELETE)路由;
  4. 更新框架依赖的golang.org/x/sys模块;
  5. 改进gform的批量操作(Batch*操作)返回结果对象,可以通过该结果对象获得批量操作准确的受影响记录行数;
  6. gstr/gregex模块从util分类迁移到了text分类目录下;
  7. gtest模块从util分类迁移到了test分类目录下;
  8. 完善glog方法注释;

Bug Fix

  1. 修复带点的邮件格式,用gvalid.Check的"email"规则不能匹配成功;
  2. 修复gvalid.Checkregex规则下的检查失败问题;
  3. 修复gcron模块定时规则中天和周不允许?符号的问题;
  4. 修复ghttp.Server在部分异常情况下仍然返回200状态码的问题;
  5. 修复gfpool模块中由于原子操作问题造成的高并发"内存泄露"问题;
  6. 修复分组路由注册对象/控制时,方法Index的路由仅能通过/xxx/index访问的问题;
  7. 修复模板引擎使用中,当不存在config.toml(即使没使用)配置文件时的报错问题;
  8. 其他一些修复;

v1.4.6 (2019-01-24)

新特性

  1. 新增并发安全的高性能任务定时器模块gtimer, 类似于Java的Timer但是比较于Java的Timer更加强大,内部实现采用灵活高效的分层时间轮设计,被设计为可管理维护百万级别以上数量的定时任务。gtimerGF框架的核心模块之一,单元测试覆盖率达到93.6%https://goframe.org/os/gtimer/index
  2. 采用任务定时器gtimer重构gcron定时任务模块,去掉第三方github.com/robfig/cron包的使用。gcron增加单例模式的定时任务:https://goframe.org/os/gcron/index#
  3. gconv类型转换模块支持对struct结构体中的指针属性转换:https://goframe.org/util/gconv/struct
  4. gform增加对数据库类型的自动识别特性,这一特性在需要将查询结果json编码返回时非常有用: https://goframe.org/database/orm/index
  5. Travis CI增加对386架构的自动化测试支持(目前已支持386amd64)

新功能

  1. ghttp模块新增ExitExitAllExitHook方法用于HTTP请求处理流程控制: https://goframe.org/net/ghttp/service/object
  2. grand模块增加Meet/MeetProb方法,用于给定概率的随机满足判断,增加别名方法N/Str/Digits/Letters
  3. gvalid数据/表单校验模块增加16X19X手机号的校验支持;

功能改进

  1. gform设置默认的数据库连接池CONN_MAX_LIFE参数值为30秒;
  2. 改进glist模块,提高约20%左右性能,并增加若干链表操作方法;
  3. 改进gqueue模块,提高约50左右性能,并增加模块对select语法的支持(使用Queue.C): https://goframe.org/container/gqueue/index
  4. 改进gmlock内存锁模块,并完善单元测试用例:https://goframe.org/os/gmlock/index
  5. 改进并发安全容器所有的模块,调整并发安全控制非必需参数safe...boolunsafe...bool
  6. 改进gpool对象复用模块,支持并发安全;
  7. 更新gkafka模块的第三方依赖包;
  8. 完善ghttp模块的单元测试用例;

Bug Fix

  1. 修复gmd5模块操作文件时的文件指针未关闭问题;
  2. 修复gcache缓存项过期删除失效问题;
  3. 其他修复;

v1.3.8 (2018-12-26)

新特性

  1. gform完成重构,以提高扩展性,并修复部分细节问题、完善单元测试用例(https://goframe.org/database/orm/index)
  2. WebServer路由注册新增分组路由特性(https://goframe.org/net/ghttp/group);
  3. WebServer新增Rewrite路由重写特性(https://goframe.org/net/ghttp/static);
  4. 增加框架运行时对开发环境的自动识别;
  5. 增加了Travis CI自动化构建/测试;

新功能

  1. 改进WebServer静态文件服务功能,增加SetStaticPath/AddStaticPath方法(https://goframe.org/net/ghttp/static)
  2. gform新增Filter链式操作方法,用于过滤参数中的非表字段键值对(https://goframe.org/database/orm/linkop
  3. gcache新增Data方法,用以获取所有的缓存数据项;
  4. gredis增加GetConn方法获取原生redis连接对象

功能改进

  1. 改进gformWhere方法,支持slice类型的参数,并更方便地支持in操作查询(https://goframe.org/database/orm/linkop
  2. 改进gproc进程间通信数据结构,将pid字段从16bit扩展为24bit
  3. 改进gconv/gmap/garray,增加若干操作方法;
  4. 改进gview模板引擎中的date内置函数,当给定的时间戳为空时打印当前的系统时间;
  5. 改进gview模板引擎中,当打印的变量不存在时,显示为空(标准库默认显示为<no value>
  6. 改进WebServer,去掉HANGUP的信号监听,避免程序通过nohup运行时产生异常退出问题;
  7. 改进gcache性能,并完善基准测试;

Bug Fix

  1. 修复gcache在非LRU特性开启时的缓存关闭资源竞争问题并修复doSetWithLockCheck内部方法的返回值问题;
  2. 修复grand.intn内部方法在x86架构下的随机数位溢出问题;
  3. 修复gbinaryInt方法针对[]byte参数长度自动匹配造成的字节长度溢出问题;
  4. 修复gjson由于官方标准库json不支持map[interface{}]*类型造成的Go变量编码问题
  5. 修复garray中部分方法的数据竞争问题,修复二分查找排序问题;
  6. 修复ghttp.Request.GetVar方法获取参数问题;
  7. 修复gform的数据库连接池不起作用的问题;

v1.2.11 (2018-11-26)

新特性

  1. ORM新增对SQLServerOracle的支持(https://goframe.org/database/orm/database)
  2. 完成gvalid模块校验结果的顺序特性(https://goframe.org/util/gvalid/checkmap);
  3. 改进ghttp.Request.Exit,使得调用该方法时立即退出业务执行,开发者无需调用Exit方法时再使用return返回(https://goframe.org/net/ghttp/service/object)
  4. 模板引擎新增若干内置函数:text/html/htmldecode/url/urldecode/date/compare/substr/strlimit/hidestr/highlight/toupper/tolower/nl2br (https://goframe.org/os/gview/funcs);
  5. 模板引擎新增内置变量Config (https://goframe.org/os/gview/vars);
  6. 改进gconv.Struct转换默认规则,支持不区分大小写的键名与属性名称匹配;
  7. gform配置文件支持linkinfo自定义数据库连接字段(https://goframe.org/database/orm/config)
  8. gfsnotify模块增加对特定回调的取消注册功能(https://goframe.org/os/gfsnotify/index

新功能

  1. 改进ghttp.Request,增加SetParam/GetParam请求流程自定义变量设置/获取方法,用于在请求流程中的回调函数共享变量(https://goframe.org/net/ghttp/request;
  2. 改进ghttp.Response,增加ServeFileDownload方法用于WebServer引导客户端下载文件(https://goframe.org/net/ghttp/response);
  3. gvar模块新增gvar.VarRead只读接口,用于控制对外只暴露数据读取功能;
  4. 增加g.Throw抛异常方法,g.TryCatch异常捕获方法封装;
  5. 改进gcron模块增加自定义的Cron管理对象增加New/Start/Stop方法;

功能改进

  1. WebServer添加RouterCacheExpire配置参数,用于设置路由检索缓存过期时间;
  2. WebServer允许同一HOOK事件被多次绑定注册,先注册的回调函数优先级更高(https://goframe.org/net/ghttp/service/hook);
  3. 当前工作目录为系统临时目录时,gcfg/gview/ghttp模块默认不添加工作目录到搜索路径;
  4. 改进WebSocket默认支持跨域请求(https://goframe.org/net/ghttp/websocket);
  5. 改进gtime.Format支持中文;
  6. 改进gfsnotify,支持编辑器对文件非执行标准编辑时(RENAME+CHMOD)的热更新问题;
  7. 改进gtype.Set方法增加Set原子操作返回旧的变量值;
  8. gfile.ScanDir增加支持pattern多个文件模式匹配,使用','符号分隔多个匹配模式;
  9. gcfg模块增加获取配置变量为*gvar.Var;
  10. gstr模块增加对中文截取方法;
  11. 改进gtime.StrToTime对常用时间格式匹配模式,新增gtime.ParseTimeFromContent方法;
  12. 修改配置管理、模板引擎、调试模式的环境变量名称为大写下划线标准格式;
  13. 改进grand模块随机数生成设计,底层使用crypto/rand+缓冲区实现高速的随机数生成(https://goframe.org/util/grand/index);

问题修复

  1. 修复gspath模块在windows下搜索失效问题;
  2. 修复gspath模块Search时带有indexFiles的检索问题;
  3. bug fix INZS1(https://github.com/gogf/gf/issues/INZS1);
  4. 修复gproc.ShellRun在windows下的执行问题;

v1.0.898 stable (2018-10-24)

新特性

  1. gf-orm增加sqlite数据库类型支持(http://gf.johng.cn/database/orm/database)
  2. 增加gkafka模块对kafka的客户端程序封装支持分组消费及指定起始位置等特性并提供简便易用的API接口(http://gf.johng.cn/database/gkafka/index)
  3. 增加go语言最新版本的go modules特性支持;
  4. 增加gcron定时任务模块(http://gf.johng.cn/os/gcron/index)
  5. Web Server增加路由注册项获取/打印特性,所有的路由注册/回调注册一览无余;
  6. 模板引擎增加全局变量管理,并增加多个常用的内置函数及内置变量(http://gf.johng.cn/os/gview/funcs
  7. gredis改进为单例操作方式(基于基层连接池特性),每次操作redis服务器时开发者无需显示调用Close方法执行关闭(http://gf.johng.cn/database/gredis/index
  8. gf-orm增加数据库操作自动Close特性(基于底层链接池特性),开发者无需再defer db.Close(),并增加g.DB数据库对象单例别名(http://gf.johng.cn/database/orm/linkop
  9. 增加gvar通用动态变量模块(http://gf.johng.cn/container/gvar/index
  10. 数据结构容器增加并发安全特性开启/关闭功能,当关闭后和普通的数据结构无异,且在非并发安全模式下性能会得到提高;
  11. 新增gmlock内存锁模块(http://gf.johng.cn/os/gmlock/index
  12. 增加gaes算法模块(http://gf.johng.cn/crypto/gaes/index
  13. gproc模块增加执行shell命令方法(http://gf.johng.cn/os/gproc/index
  14. 新增gfcache模块,用于带自动缓存更新的文件内容操作(文档待完善);

新功能

  1. glog增加链式操作方法,增加日志级别管理控制、分类管理、调试管理功能;
  2. g.View增加分组名称设置,支持通过g.*对象管理器获取多个命名的单例模板引擎对象;
  3. glog增加对文件名称格式的自定义设置,支持gtime日期格式
  4. gconv增加Ints/Uints/Floats/Interfaces转换方法;
  5. gjson增加Append方法;
  6. gparser增加NewUnsafe/Append方法;
  7. gcache增加GetOrSet/GetOrSetFunc/GetOrSetFuncLock方法;
  8. gset增加LockFunc/RLockFunc方法;
  9. ghttp.Response方法完善,增加ParseTpl/ParseTplContent/TplContent方法,Template修改为Tpl方法;
  10. ghttp.Request增加获取用户真实IP判断;
  11. Session增加Contains方法;
  12. 完善ghtml模块,增加多个方法;
  13. gcache新增Contains/SetIfNotExist方法;
  14. gvalid增加Error对象,用以管理校验错误信息;
  15. gvalid模块增加struct tag的校验规则、自定义错误提示信息绑定的支持特性(http://gf.johng.cn/util/gvalid/index
  16. ghttp增加输入参数与struct绑定机制,并增加对应params标签支持(http://gf.johng.cn/net/ghttp/service/handler
  17. ghttp.Request增加服务端BasicAuth功能(文档待完善)
  18. gvalid增加字段校验别名用于自定义返回结果字段并更新WebServer中相关使用的模块
  19. gf-orm链式操作增加ForPage方法,调整Chunks方法;
  20. ghttp对象路由注册增加Init&Shut自动回调方法,增加重复路由注册检测功能;
  21. gfsnotify增加默认递归Add/Remove特性;
  22. ghttp.Response增加ServiceFile方法;
  23. 其他一些新功能;

功能改进

  1. 改进ghttp.Server配置管理;
  2. 改进gcache底层对象继承关系,改进部分设计细节,提高性能;
  3. 改进gfpool文件指针池,修复部分错误,提升性能,并增加基准测试代码;
  4. 改进gmap系列并发安全map数据结构增加多个易用性的方法
  5. 改进gconv.Struct对象转换功能(http://gf.johng.cn/util/gconv/index
  6. 改进grand随机数生成规则,提供了极高的随机数生成性能,并保证每一次调用随机方法时生成的都是不同的随机数值(http://gf.johng.cn/util/grand/index
  7. 改进gfile文件内容操作方法,增加若干常用的文件内容读取方法;
  8. 改进gtime模块,并增加时区转换方法;
  9. 改进COOKIE,去掉锁机制;
  10. 改进SESSION获取方法,新增多个类型获取方法;
  11. 改进g.DB/g.Config单例缓存键名;
  12. 改进gtcp/gudp超时错误判断机制;
  13. 改进gtype底层统一修改为原子操作;
  14. 改进gvalidstructstring属性的默认值非必需校验;
  15. 改进gvalid在关联规则下的非必需校验;
  16. 改进gf-orm在调试模式下日志自动输出功能;
  17. ghttp.Server/gspath模块静态文件检索改进;
  18. 优化ghttp.ServerConfig配置,增加struct/method``名称到uri的转换规则,通过SetNameToUri方法进行灵活配置(http://gf.johng.cn/net/ghttp/service/object
  19. 改进*any/:name路由匹配规则,支持不带名字的*/:路由规则;
  20. 修改默认配置文件名称 config.yml -> config.tomlhttp://gf.johng.cn/os/gcfg/index
  21. 调整服务注册的BindControllerMethodBindObjectMethod逻辑为绑定路由到指定的方法执行;
  22. 改进garray二分查找方法,增加安全操作处理;
  23. 改进gdb.Result/Recorde ToXml方法,增加可选的rootTag参数;
  24. 其他一些改进;

问题修复

  1. 修复ghttp.Serverwindows下的重启失效问题;
  2. 修复ghttp.Server服务注册与回调注册路由重复判断问题;
  3. 修复garray排序数组Add变参时的死锁问题;
  4. 修复gfsnotify默认递归监控整个gspath.Add添加的目录的问题;
  5. 修复ghttp.BindParams@file文件上传标识符的转义问题;
  6. 修复ghttp.Server日志路径丢失问题;
  7. 修复多WebServer下的状态检测问题;
  8. 修复gvalid模块min/max校验问题;
  9. 修复控制器和执行对象服务注册时绑定'/'路由的问题;
  10. 修复gvalid.CheckStruct自定义错误提示失效问题;
  11. ghttp.Server修复hookserve方法的路由影响,并新增跳转方法;
  12. 其他一些修复;

其他改动

  1. 去掉gfile.IsExecutable方法;
  2. 目录调整,将加密/解密相关的包从encoding目录迁移到crypto目录下;
  3. 增加gfsnotify/gfcache调试信息;
  4. gf-orm允许写入的键值为nil时往数据库中写入null;
  5. 统一使用gview.Params类型作为模板变量类型;
  6. gconv.MapToStruct方法名称修改为gconv.Struct
  7. ghttp.Server完善重启及停止的终端提示信息;
  8. 完善gring模块,增加约瑟夫问题代码作为gring示例程序;
  9. 其他一些改动;

v0.99.682 beta (2018-08-07)

新特性

1、新增gdes包用于DES加密/加密算法处理;
2、新增gkafka包kafka的golang客户端
3、新增gpool对象复用池比较于标准库的sync.Pool更加灵活强大可自定义对象的缓存时间、创建方法、销毁方法(http://gf.johng.cn/686654)
4、完成网络通信gtcp/gudp包的重构并进行了大量的改进工作新增了详尽的开发文档及示例代码(http://gf.johng.cn/494382)
5、增加gring并发安全环标准库container/ring包的并发安全版本并做了易用性的封装(http://gf.johng.cn/686655)
6、gtime包新增了自定义日期格式话的支持格式化语法类似PHP的date语法(http://gf.johng.cn/494387)
7、gdb增加调试模式特性使用SetDebug方法实现在调试模式下可以获取详细的SQL执行记录增加了详细的开发文档及示例代码(http://gf.johng.cn/702801)
8、gdb增加查询缓存特性使用Cache方法实现增加了详细的开发文档及示例代码(http://gf.johng.cn/702801)
9、ghttp.Server路由功能增加字段匹配规则特性支持如/order/list/{page}.html 动态路由规则特性(http://gf.johng.cn/702766)
10、gpage分页包增加分页URL规则生成模板特性内部可使用{.page}变量指定页码位置(http://gf.johng.cn/716438)
11、增加gmap.Map对象这是gmap.InterfaceInterfaceMap的别名

新功能

1、gdb增加MaxIdleConnCount/MaxOpenConnCount/MaxConnLifetime三项配置并增加SetMaxConnLifetime方法
2、ghttp.Client增加HTTP账号密码设置功能(SetBasicAuth)
3、glog新增对系统换行符号的自适配调整(\n|\r\n)
4、增加glog控制台调试模式打印开关(SetDebug)
5、gcfg增加SetFileName方法设置默认读取的配置文件名称
6、gcfg/gjson/gparser包新增Int8/16/32/64,Uint8/16/32/64方法
7、增加gzip方法的封装(Zip/Unzip)
8、gview增加模板变量分隔符设置方法SetDelimiters
9、ghttp.Response增加Writef、Writefln方法

功能改进

1、改进gfilepool文件指针池设计改进gfile文本内容写入增加指针池使用
2、gdb包增加调试模式特性并支持在调试模式下获得已执行的SQL列表结果
3、改进gproc进程间通信机制增加进程消息分组特性并限定队列大小
4、gdb结果方法处理增加ToXml/ToJson方法
5、gregx包名修改为gregex
6、改进gtime.StrToTime方法新增对常见标准时间日期的自动转换以及对时区的自动识别支持并调整gconv,gvalid对该包的引用
7、增加对字符集转换的封装gxml包中使用新增的字符集转换包来做处理
8、ghttp.Server.EnableAdmin页面Restart接口支持GET参数newExeFilePath支持
9、ghttp.Server平滑重启机制增加可自定义重启可执行文件路径特别是针对windows系统特别有用(因为windows下不支持可执行文件覆盖更新)
10、改进ghttp.Server静态文件检索设计增加开发环境时的main包源码目录查找机制改进gcfg/gview的main包源码目录查找机制
11、优化gcache设计LRU特性非默认开启优化gtype/gcache基准测试脚本新增gregx基准测试脚本改进设计提升性能
12、gfile包增加GoRootOfBuild方法用于获取编译时的GOROOT数值并改进glog包中backtrace的GOROOT路径过滤处理
13、改进grpool代码质量并改进对池化goroutine数量的限制设计
14、改进gdb.Map/List及g.Map/List的类型定义改用别名特性以便支持原生类型输入(map/slice)并修复gdb.Model.Update方法参数处理问题
15、调整ghttp包示例代码目录结构增加ghttp.Client自定义Header方法ghttp.Cookie增加Map方法用于获得客户端提交的所有cookie值构造成map返回
16、删除gcharset中的getcharset方法
17、去掉gmap中常用的基本数据类型转换获取方法
18、改进gconv.String方法当无法使用基本类型进行字符串转换时使用json.Marshal进行转换
19、gvalid.CheckObject方法名称修改为gvalid.CheckStruct

问题修复

1、修正gstr.IsNumeric错误
2、修复当xml中encoding字符集为非UTF-8字符集时报错的问题
3、修正gconv包float32->float64精度问题
4、修复gpage包分页计数问题
5、修复gdb批量数据Save错误
6、去掉gpool中math.MAXINT64常量的使用以修复int64到int类型的转换错误兼容32位系统
7、修正ghttp包没有使用Server仍然初始化相关异步goroutine的问题

v0.98.503 beta (2018-05-21)

新特性

1、平滑重启特性( http://gf.johng.cn/625833 )
2、gflock文件锁模块( http://gf.johng.cn/626062 )
3、gproc进程管理及通信模块( http://gf.johng.cn/626063 )
4、gpage分页管理模块强大的动态分页及静态分页功能并为开发者自定义分页样式提供了极高的灵活度( http://gf.johng.cn/597431 )
5、ghttp.Server增加多端口监听特性并支持HTTP/HTTPS( http://gf.johng.cn/494366 , http://gf.johng.cn/598802 )
6、增加gspath目录检索包管理工具支持对多目录下的文件检索特性
7、ghttp包控制器及执行对象注册增加更灵活的动态路由特性路由规则增加{method}变量支持;

新功能

1、gutil包增加MapToStruct方法支持将map数据类型映射为struct对象
2、gconv
    1)、gconv包增加按照类型名称字符串进行类型转换
    2)、gconv包新增Time/TimeDuration类型转换方法
3、ghttp
    1)、增加Web Server目录安全访问控制机制
    2)、ghttp.Server增加自定义状态码回调函数注册处理
4、gdb
    1)、gdb包增加gdb.GetStruct/gdb.Model.Struct方法获取查询结果记录自动转换为指定对象
    2)、gdb增加Value/Record/Result类型增加对Value类型的系列类型转换方法
    3)、gdb包增加db.GetCount,tx.GetCount,model.Count数量查询方法

功能改进

1、改进gredis客户端功能封装
2、改进grand包随机数生成性能
3、grand/gdb/gredis包增加benchmark性能测试脚本
4、改进gjson/gparser包的ToStruct方法实现
5、gdb  改进gdb.New获取ORM操作对象性能
6、gcfg :改进配置文件检索功能;
7、gview模板引擎增加多目录检索功能
8、gfile增加源码main包目录获取方法MainPkgPath
9、ghttp
    1)、ghttp.Request增加请求进入和完成时间记录并增加到默认日志内容中
    2)、ghttp.Server事件回调之间支持通过ghttp.Request.Param自定义参数进行流程传参
10、gdb
    1)、改进gdb.Result与gdb.List, gdb.Record与gdb.Map之间的类型转换便于业务层数据编码处理(如json/xml)
    2)、改进gdb.Tx.GetValue返回值类型
    3)、gdb.Model.Data参数支持更加灵活的map参数

问题修复

1、ghttp
    1)、修复ghttp包路由缓存问题
    2)、修复服务注册时的控制器及执行对象方法丢失问题;
2、gconv
    1)、修正gconv.Float64方法位大小设置问题
    2)、修复gconv.Int64(float64(xxx))问题;
2、gdb
    1)、修复gdb.GetAll针对返回数据列表的for..range...的返回结果slice相同指针问题
    2)、修复gdb.Delete方法错误
    3)、修复gdb.Model.And/Or方法
    4)、修复gdb.Model.Where方法参数处理问题
3、garray修复garray包Remove方法锁机制问题
4、gtype 修复gtype.Float32/gtype.Float64对象类型的方法逻辑错误
5、gfsnotify修复在windows下文件参数中不同文件分隔符引起的热更新机制失效问题
6、修复gvalid包验证问题如果值为nil并且不需要require*验证时,其他验证失效。并增加单元测试项,测试通过。

v0.97.399 beta (2018-04-23)

1、 增加gfsnotify文件监控模块
2、 配置管理模块增加配置文件自动检测更新机制;
3、 模板引擎增加对模板文件的自动检测更新机制;
4、 改进gconv包基本类型转换功能提高转换性能
5、 增加gpage分页管理包支持动态分页、静态分页以及自定义分页样式特性
6、 ghttp.Request增加Exit方法用以标记服务退出当在服务执行前调用后服务将不再执行
7、 ghttp.Response去掉WriteString方法统一使用Write方法返回数据流是使用灵活的参数形式
8、 模板引擎增加模板变量暴露接口LockFunc/RLockFunc以便支持开发者灵活处理模板变量
9、 ghttp.Server增加access & error log功能并支持开发者自定义日志处理回调函数注册
10、增加gredis包支持对redis的客户端操作封装并将gredis.Redis对象加入到gins单例管理器中进行统一配置管理维护
11、gins单例管理器增加对单例对象配置文件的自动检测更新机制当配置文件在外部发生变更时自动刷新单例管理器中的单例对象
12、gdb数据库ORM包增加And/Or条件链式方法并改进Where/Data方法参数灵活性
13、对于新增加的模块同时也增加了对应的开发文档并梳理完善了现有的其他模块开发文档
14、修复ISSUE:
    #IISWI github.com/gogf/gf/issues/IISWI,
    #IISMY github.com/gogf/gf/issues/IISMY,
    反馈并跟踪完成第三方依赖mxj包的ISSUE修复(github.com/clbanning/mxj/issues/48)