Clamber Core (Rust)
一个面向 Rust 项目的通用核心工具库,提供配置管理、JWT、分布式 ID(Snowflake)、结构化日志与错误处理等常用能力,开箱即用、类型安全、易扩展。
- 配置管理:多格式文件 + 环境变量覆盖 + 多文件合并(详见 CONFIG.md)
- JWT:简洁易用的 Token 生成与校验,支持自定义配置(详见 JWT_README.md)
- Snowflake:线程安全的分布式唯一 ID 生成(详见 SNOWFLAKE.md)
- 日志与追踪:tracing 生态,支持文件/控制台、按日滚动、环境过滤
- 错误处理:基于 thiserror 的统一错误类型 ClamberError(详见 ERROR_HANDLING_UPGRADE.md)
安装
在你的 Cargo.toml 中添加依赖:
[]
= "0.1.3"
= { = "1.0", = ["derive"] }
最低 Rust 版本:与本库 edition 2024 兼容的稳定版 Rust(建议使用最新 stable)。
快速开始
下面展示各核心模块的最小可用示例。更多进阶用法请查看对应的模块文档。
1) 配置管理
- 从单个文件加载并支持环境变量覆盖:
use ;
use Deserialize;
- 构建器加载多个文件并设置默认值:
use ConfigBuilder;
let config: AppConfig = new
.add_yaml_file
.add_yaml_file
.with_default?
.with_env_prefix
.with_env_separator
.ignore_missing_files
.build?;
更多内容请见 CONFIG.md(格式、环境变量命名规则、自动发现等)。
2) JWT
- 便利函数:
use ;
use ;
- 自定义配置:
use ;
let manager = new;
更多内容请见 JWT_README.md(配置说明、API、错误示例等),以及 examples/jwt_usage.rs。
3) Snowflake 分布式 ID
use snowflake_utils;
let id = generate_id?;
let string_id = generate_string_id?;
let info = parse_id?;
更多内容请见 SNOWFLAKE.md(ID 结构、配置、纪元自定义等),以及 examples/snowflake_example.rs。
4) 日志与追踪(tracing)
库内提供基于 tracing 的日志初始化与文件滚动方案,支持:
- 控制台与文件输出
- 按天滚动与压缩
- 环境变量过滤(RUST_LOG)
典型做法:
// 伪代码示例,实际 API 以 src/tracing_logs 为准
let = logger_start?;
info!;
5) 统一错误处理
- 公开类型:
- Result = std::result::Result<T, ClamberError>
- ClamberError:覆盖 JWT、IO、配置、日志等常见错误
示例与迁移说明见 ERROR_HANDLING_UPGRADE.md。
运行示例
项目内包含多份可运行示例,使用 Cargo 运行:
# JWT 示例
# 错误处理示例
# 自定义日志示例
# Snowflake 示例
在 Windows PowerShell 下亦可同样执行以上命令。
目录结构(节选)
- src/config 配置模块实现
- src/token JWT 模块实现
- src/snowflake 雪花算法模块实现
- src/tracing_logs 日志与追踪初始化
- examples 示例程序
- CONFIG.md、JWT_README.md、SNOWFLAKE.md、ERROR_HANDLING_UPGRADE.md 详细文档
版本与许可证
- crate: clamber-core = 0.1.3
- 许可证:MIT OR Apache-2.0
- 仓库:https://github.com/Clamber-L/clamber-core-rust
如有问题或建议,欢迎提交 Issue/PR。