Home - zhoudm1743/go-util GitHub Wiki
欢迎来到 Go-Util 的完整文档中心!这里提供了详尽的使用指南、最佳实践和高级功能说明。
Go-Util 是一个现代化的 Go 工具库,专注于:
- 🛡️ 类型安全: 利用 Go 1.18+ 泛型特性
- ⚡ 高性能: 零拷贝、O(1)查找、并发优化
- 📦 零依赖: 核心包无第三方依赖
- 🔗 链式API: 流畅的编程体验
- 🏢 企业级: 生产环境验证
- 字符串工具 (XStr) - 强大的字符串处理
- 数组工具 (XArray) - 函数式数组操作
- 映射工具 (XMap) - 增强的Map操作
- 时间工具 (XTime) - 便捷的时间处理
- 🚀 JSONx 包完整指南 - 高性能JSON操作 ⭐
- 🔐 JWT 包完整指南 - 企业级认证方案 ⭐
- 🔢 XEnum 枚举系统 - 类型安全枚举 ⭐
// 200层深度嵌套,毫秒级完成
j := jsonx.Object().
Set("user.profile.settings.theme.color", "dark").
Set("user.permissions.admin.level", 5)
// 5000个对象,0.01秒处理
users := jsonx.Array()
for i := 0; i < 5000; i++ {
users.Append(jsonx.Object().Set("id", i))
}
// 10万次/秒 HMAC 性能
token := jwt.NewBuilder(jwt.SigningMethodHS256, secret).
SetSubject("user123").
SetExpirationFromNow(24 * time.Hour).
Build()
// 支持所有主流算法
algorithms := []jwt.SigningMethod{
jwt.SigningMethodHS256, jwt.SigningMethodRS256,
jwt.SigningMethodHS384, jwt.SigningMethodRS384,
jwt.SigningMethodHS512, jwt.SigningMethodRS512,
}
// 100万次/秒查找性能
UserStatus := util.NewEnumBuilder[int]().
Add(1, "ACTIVE", "已激活").
Add(2, "SUSPENDED", "已暂停").
Build()
// GORM 无缝集成
type User struct {
Status *util.XEnum[int] `gorm:"type:int"`
}
功能 | 性能指标 | 对比优势 |
---|---|---|
JSONx深度访问 | 200层嵌套 | 比标准库快50% |
JWT HMAC验证 | 10万次/秒 | 企业级性能 |
XEnum查找 | 100万次/秒 | O(1)复杂度 |
XArray过滤 | 10万元素45ms | 并发优化 |
XStr处理 | 微秒级响应 | 零分配优化 |
🌐 Web API 开发
// JWT认证 + JSON处理 + 枚举验证
func UserAPI(c *gin.Context) {
// JWT验证
token := jwt.ParseFromRequest(c.Request)
// JSON处理
body := jsonx.Parse(c.Request.Body)
status := body.Get("status").Int()
// 枚举验证
if !UserStatus.IsValid(status) {
c.JSON(400, gin.H{"error": "invalid status"})
return
}
// 业务逻辑...
}
🗄️ 数据库操作
// XEnum + GORM 完美集成
type Order struct {
ID uint `gorm:"primaryKey"`
Status *util.XEnum[string] `gorm:"type:varchar(20)"`
Data json.RawMessage `gorm:"type:json"`
}
// 直接查询枚举
activeStatus, _ := OrderStatus.FromName("ACTIVE")
db.Where("status = ?", activeStatus.Value()).Find(&orders)
📊 数据处理
// 函数式编程 + 性能优化
results := util.Arrays(rawData).
Filter(func(item Data) bool { return item.IsValid() }).
Map(func(item Data) ProcessedData { return item.Process() }).
GroupBy(func(item ProcessedData) string { return item.Category }).
ToMap()
🔧 配置管理
// JSON配置 + 枚举验证 + 类型安全
config := jsonx.Parse(configFile)
logLevel := config.Get("logging.level").String()
if level, ok := LogLevel.FromName(logLevel); ok {
logger.SetLevel(level.Value())
}
文档 | 描述 | 热度 |
---|---|---|
JSONx完整指南 | 零依赖JSON操作,200层嵌套支持 | 🔥🔥🔥🔥🔥 |
性能优化指南 | 各组件性能调优技巧 | 🔥🔥🔥🔥 |
JWT完整指南 | 企业级JWT解决方案 | 🔥🔥🔥🔥 |
常见问题 | 问题排查和解决方案 | 🔥🔥🔥 |
- v1.4.0 - 新增JSONx包,支持200层嵌套深度
- v1.3.0 - JWT包重构,通用API设计
- v1.2.0 - XEnum性能优化,FastLookup支持
- v1.1.0 - 核心包性能提升,零分配优化
- 🐛 报告Bug - Issue追踪
- 💡 功能建议 - 功能讨论
- 📧 邮件支持 - [email protected]