# rutils **Repository Path**: knowgo/rutils ## Basic Information - **Project Name**: rutils - **Description**: rust 工具库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-05 - **Last Updated**: 2026-08-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # rutils Rust 实用工具库 (Rust Utility Library) ## 项目简介 `rutils` 是一个用 Rust 编写的实用工具库,提供了日期时间处理、数字进制转换、密码处理以及雪花 ID 生成等功能。该库专为需要这些基础工具的 Rust 项目设计。 ## 功能特性 ### 1. 日期时间处理 (json_date_time) 提供灵活的日期时间格式支持: - `DATE_FORMAT`: 标准日期格式 - `date_format`: 日期格式化 - `date_option_format`: 可选日期格式 - `datetime_format`: 日期时间格式化 - `datetime_option_format`: 可选日期时间格式 ### 2. 数字进制转换 (number_conversion) 支持任意进制(最高36进制)的数字转换: - 将 i64 类型数值转换为指定进制的字符串表示 - 支持 2-36 进制的任意转换 ```rust use rutils::NumberConversion; let num: i64 = 255; let hex = num.with_radix(16); // 转换为十六进制字符串 ``` ### 3. 密码工具 (password) 密码处理功能: - `setup_plain`: 设置明文密码 - `parse_plain`: 解析明文密码 - `is_password_match`: 验证密码匹配 - `encode_password`: 密码编码 - `random`: 生成随机盐值 ### 4. 雪花 ID 生成器 (snowflake) 高性能分布式 ID 生成器: - 支持自定义 epoch(时间戳起点) - 支持 worker_id 和 datacenter_id 配置 - 生成 64 位唯一 ID - 提供从 ID 中解析时间和毫秒戳的功能 ```rust use rutils::snowflake::{next, parse_millis, parse_local_time}; let id = next(); // 生成新的雪花 ID let millis = parse_millis(id); // 从 ID 中解析毫秒时间戳 ``` ## 快速开始 ### 安装 在 `Cargo.toml` 中添加依赖: ```toml [dependencies] rutils = "0.1" ``` ### 基本用法 ```rust use rutils::NumberConversion; // 数字进制转换 let number: i64 = 255; assert_eq!(number.with_radix(16), "ff"); // 雪花 ID 生成 use rutils::snowflake::next; let id = next(); println!("Generated ID: {}", id); ``` ## 模块文档 ### snowflake 模块 ```rust use rutils::snowflake::{Snowflake, next, parse_millis, parse_local_time}; // 使用默认配置生成 ID let id = next(); // 自定义配置 let mut sf = Snowflake::new(1609459200000, 1, 0); // 2021-01-01 epoch, worker_id=1 sf.set_worker_id(2); let custom_id = sf.generate(); // 从 ID 解析信息 let millis = parse_millis(id); let local_time = parse_local_time(id); ``` ### password 模块 ```rust use rutils::password::{Password, random}; let password = String::from("my_secret_password"); let encoded = password.encode_password(12345); // 使用用户ID作为salt let is_valid = password.is_password_match("my_secret_password".to_string(), 12345); // 生成随机盐值 let salt = random("additional_entropy"); ``` ## 版本要求 - Rust 1.46+ ## 许可证 MIT License ## 贡献指南 欢迎提交 Issue 和 Pull Request!