Latest posts

  • 24 6月 2026

rotatefile:给 Go 日志补上文件轮转、压缩和清理

Go 标准库能把日志写到 io.Writer,但不会管文件什么时候切、旧文件留多久、磁盘占用怎么收。项目一旦开始写本地日志,这些问题迟早会冒出来。

github.com/gookit/rotatefile 做的事情很窄:提供一个支持轮转、压缩和清理的 io.Writer。你可以继续用标准库 log/sloglogzapgookit/slog,只把文件轮转这部分交给它。

rotatefile 日志轮转海报

阅读全文 
  • 22 6月 2026

GCli v3.8 发布:共享选项、文档生成和更宽容的参数解析

GCli v3.8 已发布。相比 v3.5,这个周期补了几块 CLI 框架里经常会用到的能力:参数可以写在位置参数之后,结构体绑定支持更多 Go 类型,父命令可以定义会被子命令继承的共享选项,还能直接生成 markdown 和 man 文档。

如果你维护的是多级命令,而不是只有一两个子命令的小工具,v3.8 值得看一下。

GCli v3.8 发布海报

阅读全文 
  • 18 6月 2026

miglite:用原始 SQL 文件管理数据库迁移

数据库迁移工具有两类。一类想帮你描述表结构,再生成 SQL;另一类只管把你写好的 SQL 按顺序跑完,并记录哪些已经执行过。

github.com/gookit/miglite 选的是后者。它不试图替代 SQL,也不默认拉一堆数据库驱动进来。它做的事情很窄:发现迁移文件、解析 UP/DOWN 区块、在事务里执行 SQL,并把执行状态记到数据库里。

miglite 数据库迁移海报

阅读全文 
  • 06 6月 2026

GCli v3.5 发布:自动补全、命令中间件、帮助信息分组、结构体绑定优化等

GCli 是一个用 Go 编写的命令行应用与工具库。本文汇总了从 v3.3.1 到最近发布的 v3.5(包含 v3.4 周期)的主要改动。

这次更新主要集中在开发体验优化和底层健壮性修复上。如果你在用 Go 写 CLI 工具,这次更新里有几个比较实用的功能。

阅读全文