V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
jxia
V2EX  ›  Go 编程语言

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

  •  1
     
  •   jxia · 85 天前 · 1427 次点击
    这是一个创建于 85 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    gookit/goutil v0.7.0 新版本发布:模块调整与功能增强!这是自 v0.6.x 以来的首个大版本更新,包含 模块架构调整、30+ 新功能、性能优化及 20+ 错误修复。本文将为您详解本次升级的核心亮点。

    Github: 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 格式解析。
    • 测试工具增强:新增 MockHttpServerFileExists 等断言工具,覆盖率提升。
    • 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

    🔧 功能新增( 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 等伙伴的支持!


    📚 资源链接

    立即升级体验新特性,欢迎通过 GitHub 参与贡献!

    4 条回复    2025-08-22 11:16:07 +08:00
    mtrucc
        1
    mtrucc  
       85 天前
    看了一下挺不错的,给了个 star
    reatang
        2
    reatang  
       85 天前
    库很好,希望能像 w3c 一样,给每个函数提供文档和示例。
    这样更方便大家快速索引和使用,甚至可以作为 AI 的知识库。
    jxia
        3
    jxia  
    OP
       44 天前
    reatang
        4
    reatang  
       35 天前
    @jxia 666
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1264 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:22 · PVG 01:22 · LAX 10:22 · JFK 13:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.