Rutool - A Comprehensive Rust Utility Library
Rutool 是一个受 Hutool 启发的综合性 Rust 工具库,为日常开发任务提供丰富的工具函数。
✨ 特性
- 🚀 高性能: 利用 Rust 的零成本抽象和内存安全特性
- 🧰 功能丰富: 涵盖字符串处理、加密、网络请求、JSON处理等多个领域
- 🛡️ 类型安全: 充分利用 Rust 类型系统保证代码安全性
- 🔧 模块化: 按功能划分模块,可选择性启用
- 📚 文档完善: 详细的 API 文档和使用示例
- 🧪 测试充分: 完善的单元测试和集成测试
📦 功能模块
| 模块 | 描述 | 功能特性 |
|---|---|---|
core |
核心工具类 | 字符串处理、日期时间、类型转换、集合操作 |
crypto |
加密解密 | 对称/非对称加密、摘要算法、数字签名 |
http |
HTTP客户端 | 同步/异步请求、连接池、SSL/TLS支持 |
json |
JSON处理 | 序列化/反序列化、JSON Path、流式处理 |
cache |
缓存 | 内存缓存、持久化缓存、LRU算法 |
db |
数据库操作 | SQL执行、连接池、事务管理 |
cron |
定时任务 | Cron表达式解析、任务调度 |
extra |
扩展工具 | 二维码生成、图片处理、压缩解压 |
🚀 快速开始
安装
在你的 Cargo.toml 中添加依赖:
[]
= "0.1"
基础用法
use ;
// 字符串工具
let result = is_blank;
assert_eq!;
let formatted = format;
assert_eq!;
// 日期时间工具
let now = now;
println!;
let tomorrow = offset_day;
println!;
加密解密
use ;
HTTP 请求
use HttpUtil;
async
JSON 处理
use JsonUtil;
use ;
🎛️ 功能开关
Rutool 使用 Cargo 的功能标志来控制启用哪些模块:
[]
= { = "0.1", = ["core", "crypto"] }
可用功能标志
core: 核心工具类(默认启用)crypto: 加密解密功能http: HTTP 客户端功能json: JSON 处理功能cache: 缓存功能db: 数据库操作功能cron: 定时任务功能extra: 扩展工具功能full: 启用所有功能(默认)
📚 详细文档
🤝 贡献
欢迎贡献代码!请查看 贡献指南 了解详细信息。
开发环境设置
- 克隆仓库:
- 运行测试:
- 生成文档:
- 运行基准测试:
🧪 测试
运行完整的测试套件:
# 运行所有测试
# 运行特定模块的测试
# 运行基准测试
📄 许可证
本项目采用 MIT OR Apache-2.0 双许可证。
🙏 致谢
- 受 Hutool Java 工具库启发
- 感谢 Rust 社区和所有贡献者
- 感谢所有开源项目的支持
📞 联系方式
- 项目主页: https://github.com/yimiliya/rutool
- 问题反馈: GitHub Issues
- 邮箱: yimiliya@example.com
让 Rust 开发变得更加简单和愉快! 🚀