| Crates.io | clamber-core |
| lib.rs | clamber-core |
| version | 0.1.6 |
| created_at | 2025-08-29 07:44:58.753584+00 |
| updated_at | 2025-09-03 04:45:31.240404+00 |
| description | library for clamber |
| homepage | https://github.com/Clamber-L/clamber-core-rust |
| repository | https://github.com/Clamber-L/clamber-core-rust |
| max_upload_size | |
| id | 1815503 |
| size | 132,906 |
一个面向 Rust 项目的通用核心工具库,提供配置管理、JWT、分布式 ID(Snowflake)、结构化日志与错误处理等常用能力,开箱即用、类型安全、易扩展。
在你的 Cargo.toml 中添加依赖:
[dependencies]
clamber-core = "0.1.3"
serde = { version = "1.0", features = ["derive"] }
最低 Rust 版本:与本库 edition 2024 兼容的稳定版 Rust(建议使用最新 stable)。
下面展示各核心模块的最小可用示例。更多进阶用法请查看对应的模块文档。
use clamber_core::{load_config_with_env};
use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct AppConfig { name: String, port: u16, debug: bool }
fn main() -> clamber_core::Result<()> {
// 自动解析 YAML/TOML/JSON,支持环境变量前缀 APP_
let config: AppConfig = load_config_with_env("config.yaml", "APP")?;
println!("{:?}", config);
Ok(())
}
use clamber_core::ConfigBuilder;
let config: AppConfig = ConfigBuilder::new()
.add_yaml_file("base.yaml")
.add_yaml_file("production.yaml")
.with_default("port", 8080)?
.with_env_prefix("APP")
.with_env_separator("__")
.ignore_missing_files(true)
.build()?;
更多内容请见 CONFIG.md(格式、环境变量命名规则、自动发现等)。
use clamber_core::token::{generate_token, verify_token, is_valid_token, JwtConfig};
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize, Debug, PartialEq)]
struct User { id: String, username: String, role: String }
fn main() -> clamber_core::Result<()> {
let user = User { id: "1".into(), username: "alice".into(), role: "admin".into() };
let token = generate_token(&user, JwtConfig::default())?;
assert!(is_valid_token(&token));
let decoded: User = verify_token(&token)?;
assert_eq!(user, decoded);
Ok(())
}
use clamber_core::token::{JwtConfig, JwtManager};
let manager = JwtManager::new(JwtConfig::new("my_secret", 30));
更多内容请见 JWT_README.md(配置说明、API、错误示例等),以及 examples/jwt_usage.rs。
use clamber_core::snowflake_utils;
let id = snowflake_utils::generate_id()?;
let string_id = snowflake_utils::generate_string_id()?;
let info = snowflake_utils::parse_id(id)?;
更多内容请见 SNOWFLAKE.md(ID 结构、配置、纪元自定义等),以及 examples/snowflake_example.rs。
库内提供基于 tracing 的日志初始化与文件滚动方案,支持:
典型做法:
// 伪代码示例,实际 API 以 src/tracing_logs 为准
let (_guard_stdout, _guard_file) = clamber_core::tracing_logs::logger_start("logs")?;
tracing::info!("service started");
示例与迁移说明见 ERROR_HANDLING_UPGRADE.md。
项目内包含多份可运行示例,使用 Cargo 运行:
# JWT 示例
cargo run --example jwt_usage
# 错误处理示例
cargo run --example error_handling
# 自定义日志示例
cargo run --example beautiful_logs_custom
# Snowflake 示例
cargo run --example snowflake_example
在 Windows PowerShell 下亦可同样执行以上命令。
如有问题或建议,欢迎提交 Issue/PR。