#serialize-deserialize #env-var #serialization #deserialize #serde #env

serde-envfile

♻️ Deserialize and serialize environment variables

1 unstable release

0.1.0 Oct 27, 2023

#1242 in Encoding

Download history 109/week @ 2024-06-05 77/week @ 2024-06-12 196/week @ 2024-06-19 152/week @ 2024-06-26 83/week @ 2024-07-03 424/week @ 2024-07-10 558/week @ 2024-07-17 447/week @ 2024-07-24 323/week @ 2024-07-31 380/week @ 2024-08-07 409/week @ 2024-08-14 288/week @ 2024-08-21 265/week @ 2024-08-28 497/week @ 2024-09-04 209/week @ 2024-09-11 253/week @ 2024-09-18

1,272 downloads per month
Used in 2 crates

MIT OR Apache-2.0 OR EUPL-1.2

35KB
952 lines

serde-envfile

Built ontop the dotenvy and envy crates, serde-envfile supports both the serialization and the deserialization of environment variables from or to files (from_file, to_file), strings (from_str, to_string), or the environment of the application (from_env, to_env).

Install ☁️

Extend your Cargo.toml configuration file to include serde-envfile as a dependency or install the package with the Cargo package manager.

cargo add serde-envfile

Use 🔨

use serde::{Deserialize, Serialize};
use serde_envfile::{Error, from_str, to_string};

#[derive(Debug, Deserialize, Serialize)]
struct Test {
    hello: String,
}

fn main() -> Result<(), Error> {
    let env = "HELLO=\"WORLD\"";
    let test: Test = from_str(env)?;
    let env = to_string(&test)?;

    println!("{}", env);

    Ok(())
}

Introducing the Value type, serde-envfile, provides a more flexible approach to working with environment variables.

use serde_envfile::{to_string, Error, Value};

fn main() -> Result<(), Error> {
    let mut env = Value::new();
    env.insert("hello".into(), "world".into());
    let env = to_string(&env)?;

    println!("{}", env);

    Ok(())
}

Dependencies

~1.8–2.7MB
~46K SLoC