一个功能丰富的 Go 语言工具库,提供企业级应用开发所需的各种常用功能模块,助力快速构建高质量的 Go 应用程序。
- IOC容器:轻量级依赖注入框架,简化服务管理
- 懒加载:高效的资源延迟初始化机制
- 配置管理:灵活的配置文件读取和管理
- 缓存系统:支持内存和Redis的统一缓存接口
- 日志系统:可配置的日志记录和输出
- 类型转换:强大的类型转换工具,支持结构体与Map互转
- 阿里云服务:OSS对象存储、短信服务、内容审核、机器翻译
- 腾讯云服务:COS对象存储、短信服务、邮件服务
- 多平台OAuth2:Google、微信、Apple、Facebook、Discord、Twitter、Casdoor
- 移动支付:Apple Pay、Google Pay(支持沙盒环境)
- 第三方支付:PayPal、Stripe
- 国内支付:微信支付、支付宝
- 平台支付:抖音支付、快手支付
- 网络请求:HTTP客户端封装,内置退避重试机制
- URL验证:完整的URL格式验证
- 数学运算:常用数学函数
- 图像处理:基础图像操作
- 加密解密:常用加密算法
- 随机生成:各种随机数据生成
- 短链生成:URL短链服务
- 退避重试:智能重试机制,支持线性退避
- Gin集成:路由自动注册和管理
- CORS支持:跨域资源共享配置
- 服务器封装:HTTP服务器快速启动
- MongoDB集成:完整的MongoDB客户端封装,支持事务处理
go get github.com/dmzlingyin/utilspackage main
import (
"context"
"github.com/dmzlingyin/utils/config"
"github.com/dmzlingyin/utils/ioc"
"github.com/dmzlingyin/utils/log"
"github.com/dmzlingyin/utils/misc"
)
func main() {
// 加载配置
config.Load("config.json")
// 初始化日志
log.Init()
// 验证URL
if misc.IsValidURL("https://example.com") {
log.Info("URL is valid")
}
// 使用IOC容器
container := ioc.NewContainer()
container.Register("service", func() interface{} {
return "my service"
})
service := container.Get("service")
log.Infof("Service: %v", service)
}轻量级的依赖注入容器,支持服务注册、依赖解析和生命周期管理。
统一的缓存接口,支持内存缓存和Redis缓存。
支持JSON配置文件的读取和全局配置管理。
可配置的日志记录器,支持不同级别的日志输出。
提供强大的类型转换功能,包括基本类型转换和结构体与Map的相互转换。
高效的资源延迟初始化机制,支持线程安全的单次初始化。
智能重试机制,支持线性退避策略,适用于网络请求等不稳定操作。
HTTP客户端封装,内置退避重试机制,支持JSON自动解析。
支持多平台的OAuth2登录认证,包含JWT令牌解析功能。
统一的支付接口,支持多种支付平台,包括Apple Pay和Google Pay的沙盒环境支持。
集成阿里云OSS对象存储、短信服务、内容审核、机器翻译等功能。
集成腾讯云COS对象存储、短信服务、邮件服务等功能。
提供MongoDB客户端封装,支持连接池配置和事务处理。
提供随机字符串生成、图像处理、短链生成、数学运算、URL验证等实用功能。
项目使用 JSON 格式的配置文件,支持应用设置、OAuth2 配置、支付配置、短信服务配置、腾讯云服务配置、MongoDB配置等。配置文件采用分层结构,便于管理不同服务的配置项。
{
"app": {
"name": "my-app",
"version": "1.0.0"
},
"pay": {
"apple": {
"key_path": "./apple_key.p8",
"key_id": "your-key-id",
"bundle_id": "com.your.app",
"issuer": "your-issuer",
"sandbox": true
},
"google": {
"key_path": "./google_key.json"
}
},
"mongo": {
"uri": "mongodb://localhost:27017",
"database": "mydb",
"max_pool_size": 10,
"min_pool_size": 2,
"tx_enabled": false
}
}项目包含完整的单元测试,支持运行所有测试、特定模块测试以及测试覆盖率检查。
# 运行所有测试
go test ./...
# 运行特定模块测试
go test ./payment/...
# 检查测试覆盖率
go test -cover ./...工具库支持快速构建完整的Web服务,包括配置加载、IOC容器初始化、服务注册、路由配置和服务器启动等功能。
// 初始化MongoDB数据库
db := mongo.NewDatabase()
scope := mongo.NewScope(db)
// 使用事务
err := scope.Transact(context.Background(), func(ctx context.Context) error {
// 在事务中执行数据库操作
return nil
})// 验证URL格式
isValid := misc.IsValidURL("https://example.com")// 结构体转Map
m, err := cast.StructToMap(myStruct)
// Map转结构体
err := cast.MapToStruct(myMap, &myStruct)// 带重试的函数调用
err := backoff.Retry(3, func() error {
// 可能失败的操作
return someUnstableOperation()
})// 发送HTTP请求并自动解析JSON响应
headers := map[string]string{"Content-Type": "application/json"}
response, err := net.Request[MyResponseType]("POST", "https://api.example.com", headers, requestBody)// 创建懒加载值
lazyValue := &lazy.Value[string]{
New: func() (string, error) {
// 昂贵的初始化操作
return "expensive initialization result", nil
},
}
// 获取值(首次调用时初始化)
value, err := lazyValue.Get()我们欢迎并感谢任何形式的贡献!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建 Pull Request
- 遵循 Go 语言规范和最佳实践
- 添加适当的测试用例
- 更新相关文档
- 保持代码风格一致
- 使用
go fmt格式化代码
如果您发现了bug或有新功能建议,请通过 Issues 提交。
- 优化性能和内存使用
- 增加更多实用工具函数
- 完善文档和示例
- 添加更多云服务集成
本项目基于 MIT 许可证开源 - 查看 LICENSE 文件了解详情。
⭐ 如果这个项目对您有帮助,请给我们一个星标!