GF(Go Frame)开发框架 v2.7.3
- 大小:1.6MB
- 分类:其它源码
- 环境:Go
- 更新:2024-09-15
热门排行
简介

GF(Go Frame)是一款模块化、高性能、生产级的Go基础开发框架。 实现了比较完善的基础设施建设以及开发工具链,提供了常用的基础开发模块, 如:缓存、日志、队列、数组、集合、容器、定时器、命令行、内存锁、对象池、 配置管理、资源管理、数据校验、数据编码、定时任务、数据库ORM、TCP/UDP组件、进程管理/通信等等。 并提供了Web服务开发的系列核心组件,如:Router、Cookie、Session、Middleware、服务注册、模板引擎等等, 支持热重启、热更新、域名绑定、TLS/HTTPS、Rewrite等特性。
特点:
模块化、松耦合设计;
模块丰富、开箱即用;
简便易用、易于维护;
高代码质量、高单元测试覆盖率;
社区活跃,大牛谦逊低调脾气好;
详尽的开发文档及示例;
完善的本地中文化支持;
设计为团队及企业使用;
模块:
核心模块
GoFrame提供了一些基础的、常用的模块,简单、易用和轻量级,并保持极少的外部依赖,这些模块由gf主仓库细致维护。
社区模块
社区模块主要由社区贡献并维护,大部分也是由gf主仓库的贡献者提供及维护,存放于gogf空间下,与gf主仓库处于同一级别。有的社区模块是从gf主仓库中剥离出来单独维护的模块,这些模块并不是特别常用,或者对外部依赖较重。
环境:
OS: Ubuntu 18.04 amd64
CPU: AMD A8-6600K x 4
MEM: 32GB
GO: v1.13.4
更新日志
组件改进
gdb
新增Stats接口定义及实现,用于获取当前数据库orm对象维护的连接池信息:ORM高级特性-连接池状态
新增FormatUpsert接口定义及实现,用于不同数据库类型实现写入/更新操作,即Save操作。
新增SqlType类型,并将已有的sql type类型定义从string类型改为了SqlType类型。
新增Model.OnConflict方法,用于实现部分数据库类型当字段唯一键冲突时的更新策略,特别是实现Save操作。
修复ClearTableFieldsAll方法失效的问题。
ghttp
新增MiddlewareNeverDoneCtx中间件,开发者可以选择使用,避免客户端取消请求时服务端收到的context cancel问题:常见问题
新增http server的监控指标实现,默认关闭不会影响性能,只有在开启metrics特性时才会自动开启:HTTPServer-监控指标
改进tracing记录,将span名称从query uri改为了route uri,便于查看时更容易聚合。
改进Request对象中的EnterTime及LeaveTime属性类型,从int64改为了*gtime.Time类型。
将WebSocket方法标记废弃,将会在未来的大版本中去掉,也会去掉http server对websocket的内嵌耦合支持。未来建议通过其他的websocket开源组件结合http server一起使用,更加解耦灵活。
修复由于Request Body默认可重复读取的问题引发的大文件上传占用内存问题。
修复StartPProfServer方法的pattern参数失效问题。
文件下载方法Request.ServeFileDownload方法新增Access-Control-Expose-Headers Header返回,以支持ajax文件请求。
服务配置新增SwaggerUITemplate配置项,用于快捷配置SwaggerUI页面的HTML内容。
http server启动路由打印时不再打印内置的中间件。
gclient
修复在开启服务发现的情况下,所有的http请求均会强制走服务发现的域名解析问题。
新增http client的监控指标实现,默认关闭不会影响性能,只有在开启metrics特性时才会自动开启:HTTPClient-监控指标
gcron
新增忽略符号#,对cron pattern中的秒字段进行占位,表示忽略秒字段,用于将6段式的cron pattern转换为5段式的linux crontab pattern:定时任务-表达式
修复在确定的秒级任务场景中(例如2 * * * * *),当底层时间出现不准确时可能引发两次任务执行。
gerror
修复gerror.HasCode方法递归逻辑失效的问题。
g
改进DumpJson方法,用于实现对任意变量按照JSON格式进行打印。
gcache
修复大量创建Cache对象引发的goroutine过多问题。
gcmd
新增RunWithSpecificArgs方法,用于使用自定义的arguments运行命令对象。
修复部分场景下由于参数结构体名称和结构体标签名称冲突引发的参数丢失问题。
gfsnotify
修复gfsnotify对象关闭时可能引发的panic问题。
glog
修复rotate特性对gz后缀日志压缩文件的重复rotate问题。
gmetric
新增gmetric组件,采用了解耦设计,只有接口定义和Noop的实现,真实的实现在社区组件中。只有引入具体的实现才会真实开启metric特性:服务监控告警
gproc
修复进程参数解析在windows下可能失败的问题。
改进Signal信号监听实现,允许在运行时增加信号监听处理方法。
gview
修复由于os.Getwd方法执行失败引起的健壮性问题。
gconv
json.RawMessage支持接受slice类型的参数转换。
修复MapDeep内部转换缺失Deep参数引发的递归转换失败问题。
使用MapRange改进内部Map遍历逻辑,提高执行性能。
社区组件
社区contrib/drivers数据库组件的改进:
contrib/drivers/dm组件新增对Save操作的支持。
contrib/drivers/mssql组件新增对Save操作的支持。
contrib/drivers/oracle组件新增对Save操作的支持,并修复写入参数不支持gdb.Raw类型的问题。
contrib/drivers/pgsql组件新增对Save操作的支持。
contrib/drivers/sqlite组件新增对Save操作的支持。
contrib/drivers/sqlitecgo组件新增对Save操作的支持。
新增contrib/metric/otelmetric组件,实现了对OpenTelemetry Metric的支持:服务监控告警
改进contrib/nosql/redis组件:
新增SentinelUsername及SentinelPassword参数配置,以扩展对Redis Sentinel模式的支持:Redis-配置管理
改进Redis接口实现,开发者可以灵活自定义扩展、覆盖社区组件对象redis.Redis类型的实现:Redis-接口化设计
改进contrib/registry/etcd组件,允许开发者配置etcd链接的校验信息。
改进contrib/rpc/grpcx组件:
对启用tracing特性时,安全截断请求内容。
新增对logger配置项的支持,允许在配置文件中通过logger配置项配置grpc server的日志对象:服务端配置
改进contrib/trace/otlphttp及contrib/trace/otlpgrpc组件,修复在短进程场景下正常ShutDown仍可能会出现的trace数据丢失问题。
开发工具
改进gen dao生成的entity源文件,增加orm标签,以提高数据库查询结果转换到entity对象的效率。
改进gen service命令,修复生成的源码文件中,方法顺序不一致问题。
改进build命令,将生成的二进制文件存放目录path参数的默认值从./temp改为了.即当前目录,以解决该参数自定义失效的问题。
改进init命令,新增-module/g参数,用于在初始化项目时显式指定go module名称。
修复gen dao在多个数据库生成配置下,使用clear参数时删除已生成的dao源文件的问题。
修复gen pbentity命令,使用自定义的jsonCase参数无效的问题。
修复run命令的-w指定监听目录参数失效的问题。













chrome下载
知乎下载
Kimi下载
微信下载
天猫下载
百度地图下载
携程下载
QQ音乐下载