一个全面的 Rust 工具库,提供快速开发所需的常用功能,包括字符串处理、日期时间、文件操作、JSON处理、验证、随机数生成和加密等功能。
- 🎯 模块化设计 - 通过特性系统按需引入功能
- 🛡️ 类型安全 - 充分利用Rust的类型系统确保安全性
- 🚀 高性能 - 优化的算法和数据结构
- 📚 丰富文档 - 完整的API文档和使用示例
- 🧪 全面测试 - 超过200个测试用例确保质量
- 🔧 易于使用 - 简洁的API设计
- 🌍 国际化支持 - 支持中文处理和验证
在你的 Cargo.toml 中添加:
[dependencies]
librarys = "0.1.2"默认启用核心功能,你可以根据需要选择其他特性:
[dependencies]
librarys = { version = "0.1.2", features = ["full"] }
# 或者选择特定功能
librarys = { version = "0.1.2", features = ["datetime", "crypto", "data"] }
librarys = { version = "0.1.2", features = ["core", "datetime", "validation", "data", "random", "network"] }
| 特性 | 描述 | 包含功能 |
|---|---|---|
default |
默认特性(最小依赖) | core, datetime 日期时间, validation 验证 |
core |
核心字符串工具 | 字符串处理、类型转换 |
datetime |
日期时间工具 | 日期格式化、时间计算、生肖星座 |
validation |
验证工具 | 邮箱、手机、身份证等验证 |
crypto |
基础加密功能 | MD5、SHA1、SHA256、HMAC |
crypto-full |
完整加密功能 | 基础加密 + AES、DES、RSA |
data |
数据处理 | JSON、XML处理 |
io |
文件操作 | 文件读写、压缩 |
random |
随机生成 | 随机字符串、数字、UUID、密码生成 |
network |
网络功能 | HTTP客户端、SSL工具 |
full |
全部功能 | 包含所有特性 |
use librarys::core::string_utils;
use librarys::datetime::date_utils;
use librarys::core::validation;
fn main() {
// 字符串工具
println!("是否为空: {}", string_utils::is_empty("")); // true
println!("转大写首字母: {}", string_utils::to_uppercase_first("hello")); // "Hello"
// 日期时间
println!("当前时间戳: {}", date_utils::current_timestamp());
println!("2024年生肖: {}", date_utils::get_chinese_zodiac(2024)); // "龙"
// 验证工具
println!("邮箱验证: {}", validation::is_email("[email protected]")); // true
println!("手机验证: {}", validation::is_phone("13812345678")); // true
}use librarys::crypto;
fn main() {
let text = "Hello, Rust!";
// 哈希计算
println!("MD5: {}", crypto::md5_hash(text));
println!("SHA256: {}", crypto::sha256_hash(text));
// HMAC签名
if let Ok(signature) = crypto::hmac_sha256(text, "secret_key") {
println!("HMAC签名: {}", signature);
}
}use librarys::data::json_utils;
use serde_json::json;
fn main() {
let data = json!({
"name": "张三",
"age": 30,
"city": "北京"
});
// 美化JSON
if let Ok(pretty) = json_utils::prettify_json(&data.to_string()) {
println!("美化后的JSON:\n{}", pretty);
}
// 获取值
if let Some(name) = json_utils::get_string(&data, "name") {
println!("姓名: {}", name);
}
}// 基本判断
string_utils::is_empty(""); // true
string_utils::is_chinese_char('你'); // true
string_utils::contains_chinese("hello世界"); // true
// 类型转换
string_utils::to_int("123"); // 123
string_utils::to_double("3.14"); // 3.14
// 命名风格转换
string_utils::camel_case_to_underscore("userName"); // "user_name"
string_utils::underscore_to_camel_case("user_name"); // "userName"
// 乱码检测
string_utils::is_garbled("正常文本"); // false
string_utils::is_garbled("~`#$%^&*"); // true// 基础验证
validation::is_email("[email protected]"); // true
validation::is_phone("13812345678"); // true
validation::is_url("https://example.com"); // true
// 中文验证
validation::is_chinese("你好世界"); // true
validation::is_real_name("张三"); // true
// 掩码处理
validation::mask_phone("13812345678"); // "138****5678"
validation::mask_email("[email protected]"); // "t***@example.com"// 当前时间
date_utils::current_timestamp(); // 当前Unix时间戳
date_utils::today_yyyy_mm_dd(); // "2024-01-15"
// 日期计算
date_utils::is_leap_year(2024); // true
date_utils::days_of_month(2024, 2); // 29
// 生肖和星座
date_utils::get_chinese_zodiac(2024); // "龙"
date_utils::get_zodiac(3, 15); // "双鱼座"// 随机字符串
generators::random_numbers(8); // "12345678"
generators::random_letters(10); // "AbCdEfGhIj"
// 随机数字
generators::random_int_range(1, 100); // 1-100的随机整数
generators::random_bool(); // true或false
// UUID生成
generators::random_uuid(); // UUID字符串
generators::random_chinese_string(5); // 随机中文字符串
// 密码生成
generators::random_password(12, true, true, true); // 复杂密码我们提供了两种示例程序:
展示所有功能模块的综合使用:
# 运行完整功能演示(需要所有特性)
cargo run --example demo --features full按特性分类展示功能模块:
# 运行基础功能演示
cargo run --example features_demo --features default
# 运行完整功能演示
cargo run --example features_demo --features full
# 运行特定功能演示
cargo run --example features_demo --features "datetime,crypto,data"# 运行默认特性测试(仅核心功能)
cargo test --lib --features default
# 运行文档测试
cargo test --doc --features default# 测试特定特性组合
cargo test --lib --features "default,crypto"
cargo test --lib --features "default,data"
cargo test --lib --features "default,random"
cargo test --lib --features "default,io"
cargo test --lib --features "default,network"
# 测试全部功能
cargo test --lib --features full
cargo test --doc --features full❗ 不要直接运行 cargo test,这会导致特性不匹配错误。始终使用 --lib 或 --doc 标志指定测试目标。
- 单元测试 - 全部通过
- 文档测试 - 全部通过
- 8个特性组合 - 全部支持
- 测试覆盖率 - > 95%
$ cargo test
test result: ok. 82 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.98s
$ cargo test --lib --features full
test result: ok. 91 passed; 0 failed; 5 ignored; 0 measured; 0 filtered out; finished in 0.60s
$ cargo test --doc --features full
test result: ok. 197 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 26.43s
欢迎贡献代码!请查看 CONTRIBUTING.md 了解详细信息。
git clone https://gitee.com/rust_us/librarys.git
cd librarys
cargo build --features full
cargo test --features full本项目采用 MIT 或 Apache-2.0 双重许可。详见 LICENSE-MIT 和 LICENSE-APACHE 文件。
A: 根据你的项目需求选择:
- 基础项目:使用
default特性 - Web应用:添加
network,data,crypto特性 - 桌面应用:添加
io,media特性 - 全功能应用:使用
full特性
A: 这是由于加密和图像处理依赖较重。建议:
- 只启用需要的特性
- 使用
cargo build --release进行发布构建
A: 本库内置中文支持:
- 使用
string_utils::is_chinese_char()检测中文字符 - 使用
validation::is_real_name()验证中文姓名 - 使用
random::generators::random_chinese_string()生成中文字符串
特别感谢以下开源项目:
让 Rust 开发更加高效! 🦀✨