goaid

package module
v1.0.24 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 1, 2026 License: Apache-2.0 Imports: 0 Imported by: 0

README

goaid - Go 工具库集合

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

Go Version License

📦 安装

go get -u github.com/linorwang/goaid

🚀 功能模块概览

核心工具
captcha - 图片验证码

基于 Redis 的图片验证码生成和验证工具

主要功能:

  • Redis 存储支持(单例、集群、哨兵)
  • 自定义验证码配置(长度、尺寸、过期时间)
  • Base64 图片输出
  • 验证成功自动删除

httpclient - HTTP 客户端

高性能 HTTP 客户端

主要功能:

  • 支持多种 HTTP 方法(GET/POST/PUT/DELETE)
  • 自动重试机制
  • 中间件支持(日志、认证、请求头)
  • 统一错误处理和 JSON 解析
  • 连接池优化

logger - 日志工具

基于 Uber Zap 的轻量级日志封装

主要功能:

  • 类型安全的字段构造
  • 高性能(基于 zap)
  • 支持上下文日志
  • 默认全局 logger
  • 结构体日志支持

ratelimit - 限流器

基于 Redis 的滑动窗口限流器

主要功能:

  • Redis 滑动窗口算法
  • 精确的流量控制
  • Lua 脚本保证原子性

workerpool - 协程池

面向业务任务的协程池组件

主要功能:

  • 限制并发、保护资源
  • 隔离 panic、统一收集错误
  • 动态伸缩(Min/Max Workers)
  • 可观测状态统计
  • 优雅关闭支持
  • 批量执行(Run/Map)

数据存储与处理
s3 - S3 对象存储

S3 协议兼容对象存储客户端

主要功能:

  • S3 协议兼容(AWS S3、MinIO、阿里云 OSS、腾讯云 COS)
  • 完整的 CRUD 操作
  • 自动生成访问 URL
  • 元数据支持
  • 批量操作

slice - 切片工具

常用的切片操作工具集

主要功能:

  • 添加/删除元素
  • 查找/包含判断
  • 交集/并集/差集计算
  • 聚合操作
  • 反转/映射

stringx - 字符串工具

字符串处理工具

主要功能:

  • 常用字符串操作
  • 类型转换
  • 格式化处理

支付与认证
pay - 支付接入

封装微信支付、支付宝支付和云闪付/银联 ACP 支付

主要功能:

  • 微信支付(JSAPI/Native/App/H5/查单/关单/退款)
  • 支付宝(PC/WAP/App/当面付/查单/退款)
  • 云闪付/银联 ACP(前台支付/App支付/查单/退款)
  • 金额统一用"分"的 int64
  • 通知验签

keycloak - Keycloak OIDC 客户端

轻量级 Keycloak OpenID Connect 客户端

主要功能:

  • 授权码登录 URL 生成
  • 授权码令牌交换
  • 刷新令牌交换
  • 访问令牌验证
  • ID 令牌验证
  • OIDC 发现和 JWKS 验证
  • 规范化声明解析
  • 角色助手
  • 用户信息查询
  • 登出 URL 生成

辅助工具
qrcode - Enterprise QR Code toolkit

PNG/SVG, logo embedding, Base64/Data URI, atomic file output, and structured payloads.


randx - 随机字符串生成

随机字符串生成工具

主要功能:

  • 支持数字、大小写字母、特殊符号
  • 自定义字符集
  • 类型组合(位运算)

tuple/pair - 元组

简单的元组数据结构

主要功能:

  • 键值对存储
  • 类型安全

resp - 统一响应

统一响应格式定义

主要功能:

  • 标准化响应结构
  • 便于 API 响应处理

sendsms - 短信发送

多渠道短信发送工具

主要功能:

  • 支持阿里云
  • 支持腾讯云
  • 支持华为云
  • 统一的接口封装
  • 故障转移和重试机制

📝 项目结构

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Number

type Number interface {
	RealNumber | ~complex64 | ~complex128
}

type RealNumber

type RealNumber interface {
	~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 |
		~int | ~int8 | ~int16 | ~int32 | ~int64 |
		~float32 | ~float64 // 浮点数(可正可负)
}

RealNumber 接口定义了一个类型约束

Directories

Path Synopsis
internal
Package qrcode generates QR Codes with stable options, safe resource limits, PNG and SVG output, optional logos, and structured payload helpers.
Package qrcode generates QR Codes with stable options, safe resource limits, PNG and SVG output, optional logos, and structured payload helpers.
tuple

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL