| Crates.io | flare-core |
| lib.rs | flare-core |
| version | 0.1.1 |
| created_at | 2025-03-03 07:31:33.288712+00 |
| updated_at | 2025-03-04 03:53:09.354151+00 |
| description | A high performance IM framework core library |
| homepage | |
| repository | https://github.com/flare152/flare |
| max_upload_size | |
| id | 1575253 |
| size | 76,695 |
Flare Core 是 Flare 即时通讯框架的核心基础库,提供了构建高性能网络应用所需的基础组件和工具。
use flare::config::{Config, ConfigBuilder};
let config = ConfigBuilder::new()
.with_file("config.toml")
.with_env()
.build()?;
use flare::log::{Logger, LogLevel};
let logger = Logger::builder()
.with_level(LogLevel::Info)
.with_async(true)
.build()?;
use flare_core::error::{Error, Result};
#[derive(Debug, Error)]
pub enum MyError {
#[error("配置错误: {0}")]
Config(String),
#[error("网络错误: {0}")]
Network(#[from] std::io::Error),
}
use flare::utils::time::{Duration, Instant};
let timeout = Duration::from_secs(30);
let start = Instant::now();
use flare::utils::string::{StringExt, Base64Ext};
let encoded = "Hello".to_base64();
let hash = "Password".to_sha256();
use flare::utils::sync::{AsyncMutex, AsyncRwLock};
let data = AsyncMutex::new(vec![]);
let cache = AsyncRwLock::new(HashMap::new());
use flare::utils::net::{IpExt, PortExt};
let ip = "127.0.0.1".parse_ip()?;
let port = 8080.is_available()?;
[dependencies]
flare = "0.1.0"
use flare::{config::Config, log::Logger};
#[tokio::main]
async fn main() -> Result<()> {
// 初始化配置
let config = Config::from_file("config.toml")?;
// 设置日志
Logger::init_with_config(&config)?;
// 使用工具函数
let now = flare::utils::time::now();
let id = flare::utils::id::generate();
Ok(())
}
use flare_core::error::{Error, Result};
use flare::log::error;
async fn process() -> Result<()> {
let config = Config::from_file("config.toml")
.map_err(|e| Error::new("配置加载失败").with_cause(e))?;
if let Err(e) = do_something().await {
error!("处理失败: {}", e);
return Err(e.into());
}
Ok(())
}
详细的 API 文档请访问 docs.rs。
flare/
├── config/ # 配置管理
├── log/ # 日志系统
├── error/ # 错误处理
└── utils/ # 工具集
├── time/ # 时间工具
├── string/ # 字符串处理
├── sync/ # 并发工具
└── net/ # 网络工具
配置管理
日志使用
错误处理
工具选择
配置加载失败
日志写入问题
性能问题
欢迎提交 Issue 和 Pull Request!
MIT License