| Crates.io | rust-cutil |
| lib.rs | rust-cutil |
| version | 1.0.25122401 |
| created_at | 2024-11-16 15:27:44.870246+00 |
| updated_at | 2025-12-24 15:52:29.471409+00 |
| description | cutil |
| homepage | |
| repository | https://github.com/zhrren/rust-cutil |
| max_upload_size | |
| id | 1450431 |
| size | 194,235 |
Rust 通用工具库,提供数据库操作、消息队列、日志、工具函数等常用功能。
Meta 错误类型Meta[dependencies]
rust-cutil = "1.0.25092002"
use rust_cutil::cutil::db_client::DbClient;
use rust_cutil::cutil::db_crud::*;
use sea_orm::{ConnectOptions, Database};
// 创建数据库客户端
let options = ConnectOptions::new("postgres://user:pass@localhost/db".to_string());
let client = Arc::new(DbClient::with_options(options));
// 定义 Repository
impl_repository_struct!(UserRepo);
impl_standard_crud!(UserRepo, User, user, Uuid);
// 使用
let repo = UserRepo::new(client);
let user = repo.get(user_id).await?;
use rust_cutil::cutil::message_broker::{MessageBrokerImpl, MessageBrokerOptions, Qos};
let options = MessageBrokerOptions {
host: "localhost".to_string(),
port: 1883,
username: "user".to_string(),
password: "pass".to_string(),
..Default::default()
};
let broker = MessageBrokerImpl::new(options)?;
broker.subscribe(vec!["topic/1".to_string()], Qos::AtLeastOnce).await?;
use rust_cutil::cutil::log;
use tracing_subscriber::filter::LevelFilter;
log::configure(
LevelFilter::INFO,
"/var/log".to_string(),
"myapp".to_string()
);
db_client: 数据库连接管理db_crud: CRUD 操作宏和工具message_broker: MQTT 消息代理message_center: 消息中心(MQTT + HTTP)log: 日志配置meta: 错误类型定义meta_config: 错误类型转换time: 时间工具string: 字符串工具mask: 数据脱敏env: 环境变量工具extract: 数据提取工具generator: ID 生成器reqwest: HTTP 客户端工具pos: 分页参数paged: 分页结果lazyload: 懒加载器optionable: Option 工具resultable: Result 工具empty: 空类型more-di 进行依赖管理主要依赖包括:
sea-orm: 数据库 ORMtokio: 异步运行时tracing: 结构化日志rumqttc: MQTT 客户端reqwest: HTTP 客户端serde: 序列化/反序列化more-di: 依赖注入MIT License