goutils - 多功能工具库
goutils 是一个基于 Go 语言的多功能工具库,提供了灵活的扩展能力,可支持更多通用功能开发,帮助快速构建各类应用系统。
核心功能
1. 用户管理模块
- 用户数据 CRUD 操作(插入、删除、查询)
- 登录认证与会话管理(基于 RSA 加密)
- 密码安全哈希(SHA-256 多次哈希)
- IP 访问限制(防止频繁请求)
- 多数据库支持(MySQL、PostgreSQL、SQLite 等)
2. 通用工具能力
- 灵活的键值存储(内存/Redis 可选)
- 数据加密与解密工具
- 数据库连接管理
- 通用 HTTP 处理工具(扩展中)
安装
go get github.com/Carry-Rao/goutils
快速开始
1. 初始化基础组件
import (
"github.com/Carry-Rao/goutils/db"
"github.com/Carry-Rao/goutils/kv"
"github.com/Carry-Rao/goutils/user"
)
// 初始化数据库连接(支持多种驱动)
dbConn, err := db.Open("mysql", "user:password@tcp(localhost:3306)/dbname")
if err != nil {
// 处理错误
}
// 初始化键值存储(内存或 Redis)
kvStore, err := kv.NewKVStore(kv.StoreTypeRedis, &kv.RedisConfig{
Addr: "localhost:6379",
})
if err != nil {
// 处理错误
}
2. 用户管理示例
// 定义用户结构体
type User struct {
UID int `json:"uid"`
Username string `json:"username"`
Password string `json:"password"`
// 自定义字段
}
// 初始化用户管理实例
userManager, err := user.Init(dbConn, kvStore, "users", &User{})
if err != nil {
// 处理错误
}
// 插入用户
newUser := &User{Username: "test", Password: "123456"}
hashedPassword := userManager.hashPassword(newUser.Password, 10)
newUser.Password = hashedPassword
err := userManager.Insert(newUser)
3. 扩展功能规划
该工具库将持续扩展,计划新增功能包括:
- 日志工具模块
- 数据验证工具
- 缓存管理增强
- 分布式锁实现
配置项
可通过配置调整核心参数:
// 设置置令牌有效期
userManager.config.SetTokenExpiry(48 * time.Hour)
// 设置IP请求限制
userManager.config.SetMaxConns(5)
// 调整密码哈希次数
userManager.config.SetHashTimes(15)
依赖说明
- 数据库驱动:
mysql、postgres、sqlite3
- 键值存储:
redis(可选)
- 加密库:
crypto/rsa、crypto/sha256