gookit/goutil v0.7.0 新版本发布:模块调整与功能增强!这是自 v0.6.x 以来的首个大版本更新,包含 模块架构调整、30+ 新功能、性能优化及 20+ 错误修复。本文将为您详解本次升级的核心亮点。
Github: https://github.com/gookit/goutil
clipboard, fakeobj, encodes, stdio, fmtutil, goinfo 等工具包迁移至x/子目录(如goutil/x/clipboard),提升模块独立性。xo/terminfo 的依赖,集成简单的 x/ccolor 替代原 gookit/color,去除了所有外部依赖。x/finder (原 fsutil/finder) 支持并发模式,大目录遍历效率提升 3-5 倍。strutil.IsInt() / IsFloat() / IsHttpURL():常见格式校验一键完成。arrutil.FirstOr():空值默认返回,简化切片处理逻辑。LoadText/MustGet()/GetOne()/OnExist:环境变量加载,读取。ShellQuoteToTimeOrDurationtextutil.ParseSimpleINI():内置轻量 INI 格式解析。MockHttpServer、FileExists 等断言工具,覆盖率提升。structs.InitDefaults/BindData 支持解析 date, duration 字符串格式并设置值x/ccolor 支持简单的命令行颜色打印输出变量打印 dump 支持设置打印 slice/array 的最大长度
终端色彩支持改进:x/termenv 提供更精准的颜色级别检测( TrueColor/256/16 色),兼容 macOS/iTerm2/Windows Terminal 。
HTTP 响应缓存优化:httpreq.RespX 缓存响应体,支持多次读取,降低内存分配。
跨平台 CI 增强:新增 Go 1.21+ 支持,修复 Ubuntu/macOS/Windows 下的测试兼容性问题。
完整的变更信息请查看 📄 compare/v0.6.18...v0.7.0
| 子模块 | 新增内容 |
|---|---|
fsutil |
PathNoExt() 提取无扩展名路径,Finder 并发查找 |
strutil |
IsInt() / IsHttpURL() 等校验函数,Md5Base62() 编码 |
x/ccolor |
ANSI 色彩渲染支持,替代第三方库 |
x/termenv |
提供精准的终端颜色级别检测( TrueColor/256/16 色),替代第三方库 |
testutil |
MockHttpServer 模拟服务端测试,RunOnCleanEnv 环境隔离 |
| 变更点 | 说明 |
|---|---|
| 包路径迁移 | stdio / clipboard 等迁移至 x/ 目录,减少根目录臃肿 |
| 依赖管理 | 升级 golang.org/x/term 至 v0.30.0 ,去除了三方库依赖 |
| 文档与测试增强 | 自动生成 README ,新增 500+ 单元测试用例,覆盖 cflag / timex 等模块 |
Finder 重复执行时的协程泄露问题termenv 在 Linux 环境下颜色检测失败的边界条件DetectColorLevel 单元测试稳定性本版本由 12 位贡献者 共同完成,提交 43 次代码,修复了包括 Windows 终端兼容性在内的多项社区反馈问题。感谢 @contributor1 等伙伴的支持!
立即升级体验新特性,欢迎通过 GitHub 参与贡献!
1
mtrucc 119 天前
看了一下挺不错的,给了个 star
|
2
reatang 119 天前
库很好,希望能像 w3c 一样,给每个函数提供文档和示例。
这样更方便大家快速索引和使用,甚至可以作为 AI 的知识库。 |
3
jxia OP |