#http-request #extension #asynchronous-programming #tokio #serde #regex #rust

exstd

exstd 是一个 Rust 库,提供了一组用于 Rust 标准库的常用扩展,包括序列化、异步编程、HTTP 请求、日志记录、错误处理等。

7 个版本

0.1.6 2024 年 5 月 19 日
0.1.5 2024 年 5 月 19 日

#19#扩展

Download history 503/week @ 2024-05-17 19/week @ 2024-05-24 4/week @ 2024-06-28 29/week @ 2024-07-05

每月 253 次下载

MIT 许可证

6KB

exstd

exstd 是一个 Rust 库,提供了一组用于 Rust 标准库的常用扩展。它包含了许多流行的 crate,涵盖序列化、异步编程、HTTP 请求、日志记录、错误处理等功能。

特性

  • 序列化:使用 serdeserde_jsonserde_yaml 轻松进行序列化和反序列化。
  • 异步编程:利用 tokio 进行异步编程。
  • HTTP 请求:使用 reqwest 执行 HTTP 请求。
  • 日志记录:使用 logenv_logger 实现日志记录。
  • 日期和时间:使用 chrono 处理日期和时间。
  • 正则表达式:使用 regex 使用正则表达式。
  • 命令行界面:使用 clap 解析命令行参数。
  • 环境变量:使用 dotenvy 管理环境变量。 (dotenv 项目已废弃)
  • 有序映射:使用 indexmap 进行有序映射和集合,这可以保持插入顺序。这对于元素的顺序对应用程序很重要时非常有用。
  • 并行处理:利用 rayon 进行数据并行处理。rayon 通过 Rust 强大的类型系统和并发模型,使并行计算变得简单。
  • 随机数生成:使用 rand 生成随机数。rand 提供了各种随机数生成器和分布,适用于各种应用程序,包括模拟和游戏。

安装

exstd 添加到您的 Cargo.toml

[dependencies]
exstd = "0.1.4"

用法

以下是如何在项目中使用 exstd 的示例

extern crate exstd;

use exstd::serde::{Serialize, Deserialize};
use exstd::tokio::main as tokio_main;
use exstd::reqwest::get;
use log::info;
use anyhow::Result;

#[derive(Serialize, Deserialize, Debug)]
struct MyStruct {
    name: String,
    age: u32,
}

#[tokio_main]
async fn main() -> Result<()> {
    env_logger::init();

    let my_struct = MyStruct {
        name: "John Doe".to_string(),
        age: 30,
    };

    let json = serde_json::to_string(&my_struct)?;
    info!("Serialized JSON: {}", json);

    let response = get("https://httpbin.org/get").await?.text().await?;
    info!("HTTP GET Response: {}", response);

    Ok(())
}

依赖项

~13–26MB
~406K SLoC