kit

module
v0.0.16 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2026 License: MIT

README

GitHub language count GitHub top language GitHub go.mod Go version Go Doc Go Report Card codecov

GitHub stars GitHub forks GitHub issues GitHub pull requests GitHub contributors GitHub license GitHub release (latest by date) GitHub last commit GitHub repo size GitHub workflow status Go Mod Updates Sourcegraph

Kit - Go 工具包集合

Kit 是一个功能丰富的 Go 语言工具包集合,旨在提供常用的工具函数和组件,帮助开发者更快速地构建高质量的 Go 应用程序。

模块列表

algorithms
algorithms/snowflake

分布式唯一 ID 生成器:实现经典 Snowflake 算法,支持多节点高并发、趋势递增 64 位 ID、多种编码格式,适用于数据库主键、分布式事务、消息队列等场景。详细说明 →

bytes

字节操作工具:提供安全的随机字节生成功能,基于加密安全的随机数生成器,适用于生成nonce、salt、会话令牌等安全场景。详细说明 →

cache

高性能进程内缓存:基于 ristretto 的缓存实现,支持过期时间设置、泛型接口和自动内存管理。详细说明 →

convert

通用类型转换工具:支持任意类型与基础类型、切片、Map、结构体之间的安全转换,兼容 gconv,提供带错误和无错误两套 API,适用于数据解析、配置加载、接口适配等场景。详细说明 →

container
container/bloom

高效布隆过滤器:支持分组、可插拔存储、误判率灵活配置,适合缓存预判、唯一性校验等大规模集合判定场景。详细说明 →

context

Context 扩展工具:提供 WithoutCancel 函数,用于忽略父 context 的取消信号和超时,适用于需要阻断取消的场景。详细说明 →

crypto
crypto/aes

AES 加密工具:提供 AES-GCM 加密/解密功能,支持多种输入格式(字节数组、字符串、Base64、Hex)和自动随机 nonce 生成。详细说明 →

crypto/des

DES 加密工具:提供 DES-CBC 加密/解密功能,支持 PKCS7 填充和多种输入格式(字节数组、字符串、16 进制字符串)。详细说明 →

crypto/md5

MD5 哈希工具:提供便捷的字符串 MD5 哈希计算功能,支持带错误处理和忽略错误的版本,适用于数据校验和缓存键生成。详细说明 →

crypto/otp

一次性密码工具:提供基于时间的一次性密码(TOTP)算法实现,支持多种哈希算法、自定义密码长度和生成兼容的验证器 URL。详细说明 →

crypto/rsa

RSA 加密工具:提供 RSA 加密/解密功能,支持公钥加密/私钥解密和私钥加密/公钥解密(数字签名)操作,以及 PEM 格式密钥处理。详细说明 →

crypto/sha

SHA256 哈希工具:提供便捷的字符串 SHA256 哈希计算功能,支持带错误处理和忽略错误的版本,适用于数据完整性校验、签名、区块链等安全场景。详细说明 →

database
database/redis

高性能 Redis 客户端:支持原生命令、管道、事务、Lua 脚本、发布订阅、基础 KV 操作等,兼容 go-redis v9。详细说明 →

database/sql

数据库驱动接口:提供标准的数据库驱动接口定义,支持自定义驱动实现和连接管理。详细说明 →

MySQL 数据库工具:提供 MySQL 数据库连接池管理、查询构建器和事务处理等功能,支持读写分离和连接池配置。详细说明 →

kratos
kratos/config

配置解码器:对 Kratos 配置系统的扩展,支持对特定后缀(如 .b64)的配置值进行解码。详细说明 →

kratos/middleware

中间件集合:提供了验证(validate)和基本认证(basicauth)两个中间件,支持请求验证和 HTTP Basic Authentication。详细说明 →

kratos/transport/http

HTTP 适配器:提供 Kratos HTTP 服务器到 Gin 引擎的转换功能,支持路由和参数转换。详细说明 →

log

日志抽象接口,提供统一的日志记录标准,支持多种底层实现。详细说明 →

math
math/rand

随机数生成工具:提供范围内的随机数生成和中文字符(汉字、姓氏)随机生成功能,支持自定义随机数生成器。详细说明 →

net
net/http

功能丰富的 HTTP 客户端:支持 GET/POST/HEAD/表单/JSON、超时、代理、钩子、慢请求日志、trace、全局方法等。详细说明 →

net/message

高性能自定义消息协议与连接封装:支持消息类型注册、心跳包、字符串消息、自动分包、并发安全等,适用于分布式服务、长连接、定制协议等场景。详细说明 →

runtime

运行时管理:提供应用程序运行时组件的生命周期管理。详细说明 →

runtime/goroutine

goroutine 管理工具:提供 goroutine ID 获取和高效的协程池实现。支持任务调度、资源管理和性能监控等功能,适用于并发任务处理和性能优化场景。详细说明 →

runtime/retry

重试机制工具:提供通用的重试机制,支持带上下文和指数退避的函数重试,适用于网络请求、数据库操作等易失败场景。详细说明 →

testing

测试日志工具:提供带有统一前缀的测试日志输出功能,使测试输出更加清晰易读。详细说明 →

time

基于 carbon 库的时间处理工具包,提供简单的相对时间获取功能和可配置的时间格式化选项。支持编译时配置时区、格式、语言等参数。详细说明 →

更多模块正在开发中,敬请期待...

如何贡献

我们欢迎任何形式的贡献,包括但不限于:

  • 提交问题和建议
  • 改进文档
  • 提交代码改进
  • 分享使用经验

贡献前请阅读我们的 贡献指南

开发流程
  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交改动 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

更新日志

详见 CHANGELOG.md

常见问题

常见问题解答请查看 FAQ.md

版权声明

Copyright © 2025 fsyyft-go

本项目采用 MIT 许可证。详见 LICENSE 文件。

联系我们

致谢

感谢所有贡献者对本项目的支持!

相关项目


如果觉得这个项目对你有帮助,欢迎 star ⭐️

Directories

Path Synopsis
algorithms
snowflake
Package snowflake 提供基于 Snowflake 位布局的分布式唯一 ID 生成能力。
Package snowflake 提供基于 Snowflake 位布局的分布式唯一 ID 生成能力。
Package bytes 提供基于 crypto/rand 的随机字节生成工具。
Package bytes 提供基于 crypto/rand 的随机字节生成工具。
Package cache 提供统一的内存缓存接口、Ristretto 默认实现、类型安全包装器和包级默认缓存函数。
Package cache 提供统一的内存缓存接口、Ristretto 默认实现、类型安全包装器和包级默认缓存函数。
Package config 提供基于构建上下文的版本信息访问与格式化输出。
Package config 提供基于构建上下文的版本信息访问与格式化输出。
container
bloom
Package bloom 提供可分组的 Bloom Filter 及其存储抽象。
Package bloom 提供可分组的 Bloom Filter 及其存储抽象。
Package context 提供对标准库 context 的轻量补充。
Package context 提供对标准库 context 的轻量补充。
Package convert 提供基于 github.com/gogf/gf/v2/util/gconv 的常用类型转换封装。
Package convert 提供基于 github.com/gogf/gf/v2/util/gconv 的常用类型转换封装。
Package crypto 汇总本项目中与密码学和摘要算法相关的子包。
Package crypto 汇总本项目中与密码学和摘要算法相关的子包。
aes
Package aes 提供基于标准库 AES-GCM 的加解密工具。
Package aes 提供基于标准库 AES-GCM 的加解密工具。
des
Package des 提供基于 DES-CBC 与 PKCS7 padding 的兼容性加解密工具。
Package des 提供基于 DES-CBC 与 PKCS7 padding 的兼容性加解密工具。
md5
Package md5 提供字符串 MD5 摘要计算函数。
Package md5 提供字符串 MD5 摘要计算函数。
otp
Package otp 提供基于 TOTP 的一次性密码工具。
Package otp 提供基于 TOTP 的一次性密码工具。
rsa
Package rsa 提供 RSA-OAEP、PEM 密钥转换和历史兼容的 RSA 包装函数。
Package rsa 提供 RSA-OAEP、PEM 密钥转换和历史兼容的 RSA 包装函数。
sha
Package sha 提供字符串 SHA1 和 SHA256 摘要的十六进制编码辅助函数。
Package sha 提供字符串 SHA1 和 SHA256 摘要的十六进制编码辅助函数。
database
redis
Package redis 提供对 go-redis/v9 客户端的轻量封装与常用扩展接口。
Package redis 提供对 go-redis/v9 客户端的轻量封装与常用扩展接口。
sql/driver
Package driver 提供 database/sql/driver 的包装驱动和 Hook 基础设施。
Package driver 提供 database/sql/driver 的包装驱动和 Hook 基础设施。
sql/gorm
Package gorm 提供 kit/log 与 GORM logger.Interface 之间的日志适配器。
Package gorm 提供 kit/log 与 GORM logger.Interface 之间的日志适配器。
sql/mysql
Package mysql 提供基于 go-sql-driver/mysql 的数据库连接构造器。
Package mysql 提供基于 go-sql-driver/mysql 的数据库连接构造器。
example
cache command
cache 示例演示 Kit 缓存模块的全局实例、自定义实例、TTL 过期和类型安全访问。
cache 示例演示 Kit 缓存模块的全局实例、自定义实例、TTL 过期和类型安全访问。
config/version command
version 示例打印 config.CurrentVersion 暴露的版本与构建环境信息。
version 示例打印 config.CurrentVersion 暴露的版本与构建环境信息。
database/sql/gorm command
gorm 演示如何使用 kit 的 MySQL 连接和 GORM 适配器对 example_user 表执行基础 CRUD 操作。
gorm 演示如何使用 kit 的 MySQL 连接和 GORM 适配器对 example_user 表执行基础 CRUD 操作。
database/sql/mysql command
mysql 演示如何使用 kit 的 MySQL 连接完成建表、查询、更新、事务和删除操作。
mysql 演示如何使用 kit 的 MySQL 连接完成建表、查询、更新、事务和删除操作。
kratos/config command
config 运行 Kratos 配置示例命令,并委托 cmd 包加载示例配置或执行 DES 子命令。
config 运行 Kratos 配置示例命令,并委托 cmd 包加载示例配置或执行 DES 子命令。
kratos/config/cmd
Package cmd 实现 Kratos 配置示例命令,提供示例配置加载和 DES 加解密子命令。
Package cmd 实现 Kratos 配置示例命令,提供示例配置加载和 DES 加解密子命令。
log command
log 示例演示默认日志器初始化、文件输出切换和独立日志实例的使用方式。
log 示例演示默认日志器初始化、文件输出切换和独立日志实例的使用方式。
net/message command
network 运行 TCP 网络消息示例命令,可执行默认示例流程或启动 server、client 子命令。
network 运行 TCP 网络消息示例命令,可执行默认示例流程或启动 server、client 子命令。
net/message/cmd
Package cmd 实现网络消息示例命令,提供默认示例流程以及 server、client 子命令。
Package cmd 实现网络消息示例命令,提供默认示例流程以及 server、client 子命令。
runtime/goroutine command
goroutine 示例比较当前 goroutine 在快速路径和慢速路径下的 ID 获取结果。
goroutine 示例比较当前 goroutine 在快速路径和慢速路径下的 ID 获取结果。
go
build
Package build 提供了用于获取和管理 Go 程序构建环境信息的工具。
Package build 提供了用于获取和管理 Go 程序构建环境信息的工具。
imp
Package imp 提供 Go import 声明的分组、排序和别名规范检查。
Package imp 提供 Go import 声明的分组、排序和别名规范检查。
Package kratos 提供了对 go-kratos 框架的扩展和增强功能,包括配置解析、中间件和传输层的增强实现。
Package kratos 提供了对 go-kratos 框架的扩展和增强功能,包括配置解析、中间件和传输层的增强实现。
config
Package config 提供 Kratos 配置项到 map[string]any 的解码与后处理能力。
Package config 提供 Kratos 配置项到 map[string]any 的解码与后处理能力。
middleware
Package middleware 汇总用于 Kratos 服务端请求处理的中间件子包。
Package middleware 汇总用于 Kratos 服务端请求处理的中间件子包。
middleware/basicauth
Package basicauth 提供用于 Kratos 服务端的 Basic Authentication 中间件。
Package basicauth 提供用于 Kratos 服务端的 Basic Authentication 中间件。
middleware/validate
Package validate 提供用于 Kratos 服务端的请求校验中间件。
Package validate 提供用于 Kratos 服务端的请求校验中间件。
transport
Package transport 汇总 Kratos 传输层扩展子包。
Package transport 汇总 Kratos 传输层扩展子包。
transport/http
Package http 提供 Kratos HTTP Server 与 Gin Engine 之间的路由桥接工具。
Package http 提供 Kratos HTTP Server 与 Gin Engine 之间的路由桥接工具。
Package log 提供统一的 Logger 接口、全局默认日志器访问,以及基于标准库和 Logrus 的实现。
Package log 提供统一的 Logger 接口、全局默认日志器访问,以及基于标准库和 Logrus 的实现。
math
rand
Package rand 提供围绕 math/rand 的范围随机数和中文字符随机工具。
Package rand 提供围绕 math/rand 的范围随机数和中文字符随机工具。
net
Package net 提供测试网络相关用例时使用的环境变量辅助函数。
Package net 提供测试网络相关用例时使用的环境变量辅助函数。
http
Package http 提供可配置的 HTTP client、请求 Hook,以及 HTTPS 证书辅助函数。
Package http 提供可配置的 HTTP client、请求 Hook,以及 HTTPS 证书辅助函数。
message
Package message 提供基于自定义二进制协议的消息类型、工厂注册和连接封装。
Package message 提供基于自定义二进制协议的消息类型、工厂注册和连接封装。
Package runtime 定义具备显式 Start 和 Stop 生命周期的运行组件接口。
Package runtime 定义具备显式 Start 和 Stop 生命周期的运行组件接口。
goroutine
Package goroutine 提供 goroutine ID 读取工具和基于 ants 的协程池封装。
Package goroutine 提供 goroutine ID 读取工具和基于 ants 的协程池封装。
retry
Package retry 提供基于 Backoff 的重试等待计算和重试循环。
Package retry 提供基于 Backoff 的重试等待计算和重试循环。
Package testing 提供用于在测试中写入带统一前缀日志的辅助函数。
Package testing 提供用于在测试中写入带统一前缀日志的辅助函数。
text
pinyin
Package pinyin 提供基于 github.com/mozillazg/go-pinyin 的中文转拼音封装。
Package pinyin 提供基于 github.com/mozillazg/go-pinyin 的中文转拼音封装。
Package time 基于 github.com/dromara/carbon/v2 提供相对当前时间的便捷函数。
Package time 基于 github.com/dromara/carbon/v2 提供相对当前时间的便捷函数。

Jump to

Keyboard shortcuts

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