学习和使用 Golang 的过程中,你可能遇到过这样的困扰:
- 想做一些常见的字符串处理,却要么找不到现成的方法,要么需要引入笨重的第三方库;
- 想获取 CPU、内存、磁盘等系统指标,结果发现要么写很多底层代码,要么依赖大而全的框架;
- 网上资料鱼龙混杂,想找一个简洁、开箱即用的工具库很难。
为了解决这些问题,我创建了一个开源项目:👉 Rodert/go-commons。
它主打两个关键词:轻量 和 实用。
🚀 项目特点
- 零第三方依赖:完全基于 Go 标准库,轻巧、干净。
- 功能覆盖常用场景:字符串处理 + 系统资源采集。
- 跨平台:支持 Linux、macOS、Windows。
- 文档完善:有 Swagger API 文档和 examples,照抄就能跑。
🛠 使用示例
1. 字符串工具(stringutils)
你不再需要从头实现常见的字符串函数:
package main
import (
"fmt"
"github.com/Rodert/go-commons/stringutils"
)
func main() {
fmt.Println(stringutils.IsBlank(" \t\n")) // true
fmt.Println(stringutils.Trim(" hello ")) // "hello"
fmt.Println(stringutils.TruncateWithSuffix("abcdef", 4, "..")) // "ab.."
fmt.Println(stringutils.Reverse("hello")) // "olleh"
fmt.Println(stringutils.PadLeft("42", 5, '0')) // "00042"
}适合写 demo、快速验证逻辑,或者替代重复造轮子的工具函数。
2. 系统工具(systemutils)
轻松获取 CPU、内存、磁盘的运行状态:
package main
import (
"fmt"
"github.com/Rodert/go-commons/systemutils/cpuutils"
"github.com/Rodert/go-commons/systemutils/memutils"
"github.com/Rodert/go-commons/systemutils/diskutils"
)
func main() {
// CPU
cpuInfo, _ := cpuutils.GetCPUInfo()
fmt.Printf("CPU Usage: %.2f%%\n", cpuInfo.UsagePercent)
// Memory
memInfo, _ := memutils.GetMemInfo()
fmt.Printf("Memory Used: %d / %d bytes\n", memInfo.Used, memInfo.Total)
// Disk
diskInfo, _ := diskutils.GetDiskInfo("/")
fmt.Printf("Disk Used: %.2f%%\n", diskInfo.UsedRatio)
}只需几行代码,就能采集资源指标,非常适合做监控、运维小工具。
📖 在线文档
我们提供了交互式 API 文档(Swagger UI):
👉 https://rodert.github.io/go-commons
同时支持本地启动:
./run_apidocs.sh
# 浏览器访问 http://localhost:8080🤝 一起来贡献
开源的意义不只是分享,更在于 协作和共建。
目前项目还在早期阶段,我们非常欢迎大家参与:
- 补充更多实用的字符串工具函数;
- 增加新的系统指标采集能力(网络流量、进程信息等);
- 完善 examples 和文档;
- 帮忙测试不同平台的兼容性。
如果你是 Golang 学习者,这会是一个绝佳的练手机会;
如果你是 经验开发者,欢迎一起把工具库做得更好。
👉 项目地址:https://github.com/Rodert/go-commons
📝 总结
Go Commons 不是要做“大而全”的框架,而是一个 简洁实用、可随手调用的工具库。
它就像是 Go 世界里的“瑞士军刀”,小巧,却能解决你日常开发的很多问题。
我非常期待更多朋友一起来完善它,
让 Go 开发者在写代码时,能少一点重复劳动,多一点快乐。 🚀
















