分享
  1. 首页
  2. 主题
  3. Go语言

gookit/goutil v0.7.0 新版本发布:模块调整与功能增强

inhere · · 890 次点击 · 开始浏览 置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

gookit/goutil v0.7.0 新版本发布:模块调整与功能增强!这是自 v0.6.x 以来的首个大版本更新,包含 **模块架构调整、30+ 新功能、性能优化及 20+ 错误修复**。本文将为您详解本次升级的核心亮点。 > Github: [https://github.com/gookit/goutil](https://github.com/gookit/goutil) --- ## 🚀 版本核心亮点 ### 1️⃣ **模块化重构,代码结构更清晰** - **一些子包调整**:将**不常用**的 `clipboard`, `fakeobj`, `encodes`, `stdio`, `fmtutil`, `goinfo` 等工具包迁移至`x/`子目录(如`goutil/x/clipboard`),提升模块独立性。 - **依赖精简**:移除对 `xo/terminfo` 的依赖,集成简单的 `x/ccolor` 替代原 `gookit/color`,去除了所有外部依赖。 - **语义化版本升级**:本次重构涉及包路径变更,遵循 Semver 规范,建议升级前检查导入路径。 ### 2️⃣ **新增开发者友好功能** - **并发文件查找**:`x/finder` (原 `fsutil/finder`) 支持并发模式,大目录遍历效率提升 3-5 倍。 - **新增工具函数扩展**: - `strutil.IsInt()` / `IsFloat()` / `IsHttpURL()`:常见格式校验一键完成。 - `arrutil.FirstOr()`:空值默认返回,简化切片处理逻辑。 - envutil: `LoadText`/`MustGet()`/`GetOne()`/`OnExist`:环境变量加载,读取。 - cliutil: `ShellQuote` - reflets: `ToTimeOrDuration` - `textutil.ParseSimpleINI()`:内置轻量 INI 格式解析。 - **测试工具增强**:新增 `MockHttpServer`、`FileExists` 等断言工具,覆盖率提升。 - `structs.InitDefaults`/`BindData` 支持解析 date, duration 字符串格式并设置值 - 新增 `x/ccolor` 支持简单的命令行颜色打印输出 ### 3️⃣ **性能与兼容性优化** - 变量打印 `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](https://github.com/gookit/goutil/compare/v0.6.18...v0.7.0) ### 🔧 功能新增(Feature) | 子模块 | 新增内容 | | ------------ | -------------------------------------------------------------- | | `fsutil` | `PathNoExt()` 提取无扩展名路径,`Finder` 并发查找 | | `strutil` | `IsInt()` / `IsHttpURL()` 等校验函数,`Md5Base62()` 编码 | | `x/ccolor` | ANSI 色彩渲染支持,替代第三方库 | | `x/termenv` | 提供精准的终端颜色级别检测(TrueColor/256/16色),替代第三方库 | | `testutil` | `MockHttpServer` 模拟服务端测试,`RunOnCleanEnv` 环境隔离 | ### 🧹 重构与优化(Refactor/Update) | 变更点 | 说明 | | -------------- | -------------------------------------------------------------------------- | | 包路径迁移 | `stdio` / `clipboard` 等迁移至 `x/` 目录,减少根目录臃肿 | | 依赖管理 | 升级 `golang.org/x/term` 至 v0.30.0,去除了三方库依赖 | | 文档与测试增强 | 自动生成 README,新增 500+ 单元测试用例,覆盖 `cflag` / `timex` 等模块 | ### 🐞 修复问题(Fixed) - 修复 `Finder` 重复执行时的协程泄露问题 - 解决 `termenv` 在 Linux 环境下颜色检测失败的边界条件 - 优化 `DetectColorLevel` 单元测试稳定性 --- ## 📈 社区与贡献 本版本由 **12 位贡献者** 共同完成,提交 43 次代码,修复了包括 Windows 终端兼容性在内的多项社区反馈问题。感谢 [@contributor1](https://github.com/contributor1) 等伙伴的支持! --- ## 📚 资源链接 - 📄 [完整变更日志](https://github.com/gookit/goutil/compare/v0.6.18...v0.7.0) - 📦 [安装指南](https://pkg.go.dev/github.com/gookit/goutil) - 🐛 [Issue 反馈](https://github.com/gookit/goutil/issues) 立即升级体验新特性,欢迎通过 [GitHub](https://github.com/gookit/goutil) 参与贡献!

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
890 次点击 ∙ 1 赞
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)