7 releases
0.1.6 | May 19, 2024 |
---|---|
0.1.5 | May 19, 2024 |
#1095 in Web programming
6KB
exstd
exstd
is a Rust library that provides a set of commonly used extensions for the Rust standard library. It includes a variety of popular crates that cover essential functionalities such as serialization, asynchronous programming, HTTP requests, logging, error handling, and more.
Features
- Serialization: Easily serialize and deserialize data with
serde
andserde_json
,serde_yaml
. - Asynchronous Programming: Utilize
tokio
for asynchronous programming. - HTTP Requests: Perform HTTP requests with
reqwest
. - Logging: Implement logging with
log
andenv_logger
. - Date and Time: Work with dates and times using
chrono
. - Regular Expressions: Use regular expressions with
regex
. - Command Line Interface: Parse command line arguments with
clap
. - Environment Variables: Manage environment variables with
dotenvy
. (dotenv project is abandoned) - Ordered Maps: Use indexmap for ordered maps and sets, which maintain the order of insertion. This can be particularly useful when the order of elements is important for your application.
- Parallelism: Leverage rayon for data parallelism. rayon makes it easy to perform parallel computations using Rust's powerful type system and concurrency model.
- Random Number Generation: Utilize rand for generating random numbers. rand provides a wide range of random number generators and distributions, making it suitable for a variety of applications including simulations and games.
Installation
Add exstd
to your Cargo.toml
:
[dependencies]
exstd = "0.1.4"
Usage
Here's an example of how to use exstd in your project:
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(())
}
Dependencies
~13–26MB
~392K SLoC