goaid - Go 工具库集合
一个实用的 Go 工具库集合,包含多个常用功能模块,帮助你快速构建 Go 应用程序。

📦 安装
go get -u github.com/linorwang/goaid
🚀 功能模块概览
核心工具
基于 Redis 的图片验证码生成和验证工具
主要功能:
- Redis 存储支持(单例、集群、哨兵)
- 自定义验证码配置(长度、尺寸、过期时间)
- Base64 图片输出
- 验证成功自动删除
高性能 HTTP 客户端
主要功能:
- 支持多种 HTTP 方法(GET/POST/PUT/DELETE)
- 自动重试机制
- 中间件支持(日志、认证、请求头)
- 统一错误处理和 JSON 解析
- 连接池优化
基于 Uber Zap 的轻量级日志封装
主要功能:
- 类型安全的字段构造
- 高性能(基于 zap)
- 支持上下文日志
- 默认全局 logger
- 结构体日志支持
基于 Redis 的滑动窗口限流器
主要功能:
- Redis 滑动窗口算法
- 精确的流量控制
- Lua 脚本保证原子性
面向业务任务的协程池组件
主要功能:
- 限制并发、保护资源
- 隔离 panic、统一收集错误
- 动态伸缩(Min/Max Workers)
- 可观测状态统计
- 优雅关闭支持
- 批量执行(Run/Map)
数据存储与处理
s3 - S3 对象存储
S3 协议兼容对象存储客户端
主要功能:
- S3 协议兼容(AWS S3、MinIO、阿里云 OSS、腾讯云 COS)
- 完整的 CRUD 操作
- 自动生成访问 URL
- 元数据支持
- 批量操作
常用的切片操作工具集
主要功能:
- 添加/删除元素
- 查找/包含判断
- 交集/并集/差集计算
- 聚合操作
- 反转/映射
字符串处理工具
主要功能:
支付与认证
pay - 支付接入
封装微信支付、支付宝支付和云闪付/银联 ACP 支付
主要功能:
- 微信支付(JSAPI/Native/App/H5/查单/关单/退款)
- 支付宝(PC/WAP/App/当面付/查单/退款)
- 云闪付/银联 ACP(前台支付/App支付/查单/退款)
- 金额统一用"分"的 int64
- 通知验签
keycloak - Keycloak OIDC 客户端
轻量级 Keycloak OpenID Connect 客户端
主要功能:
- 授权码登录 URL 生成
- 授权码令牌交换
- 刷新令牌交换
- 访问令牌验证
- ID 令牌验证
- OIDC 发现和 JWKS 验证
- 规范化声明解析
- 角色助手
- 用户信息查询
- 登出 URL 生成
辅助工具
PNG/SVG, logo embedding, Base64/Data URI, atomic file output, and structured payloads.
随机字符串生成工具
主要功能:
- 支持数字、大小写字母、特殊符号
- 自定义字符集
- 类型组合(位运算)
简单的元组数据结构
主要功能:
统一响应格式定义
主要功能:
多渠道短信发送工具
主要功能:
- 支持阿里云
- 支持腾讯云
- 支持华为云
- 统一的接口封装
- 故障转移和重试机制
📝 项目结构
goaid/
├── captcha/ # 图片验证码模块
├── httpclient/ # HTTP 客户端模块
├── logger/ # 日志工具模块
├── ratelimit/ # 限流器模块
├── workerpool/ # 协程池模块
├── s3/ # S3 对象存储模块
├── slice/ # 切片工具模块
├── stringx/ # 字符串工具模块
├── pay/ # 支付接入模块
├── keycloak/ # Keycloak OIDC 客户端模块
├── qrcode/ # Enterprise QR Code toolkit
├── randx/ # 随机字符串生成模块
├── tuple/ # 元组模块
│ └── pair/
├── resp/ # 统一响应模块
├── sendsms/ # 短信发送模块
└── internal/ # 内部工具
├── errs/ # 错误处理
└── slice/ # 内部切片工具
🛠️ 技术栈
📚 使用场景
Web 应用开发
httpclient - 调用第三方 API
logger - 应用日志记录
ratelimit - API 限流保护
captcha - 用户验证码
sendsms - 短信验证码
keycloak - 用户认证授权
workerpool - 批量任务处理
支付与交易
pay - 微信/支付宝/银联支付集成
workerpool - 批量订单处理
logger - 交易日志记录
数据处理
slice - 切片操作
stringx - 字符串处理
randx - 随机数据生成
resp - 统一响应格式
文件存储
s3 - 对象存储(支持 AWS、阿里云、腾讯云等)
基础设施
logger - 结构化日志
tuple/pair - 数据结构
workerpool - 异步任务处理
📄 许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。
🔗 相关链接
Made with ❤️ by goaid team