Crate etoml

source ·
Expand description

CI badge

etoml

A tool to create and manage application secrets securely protected in encrypted (with ChaCha toml files.

This is basically a Rust/Toml port of ejson. The main features is it gives you a convenience function to decrypt your secrets directly into a struct in your application.

Install

cargo install etoml

Usage

To create/manage secret files you use the command line interface:

Usage: etoml-write <COMMAND>

Commands:
  init     Create a new encrypted TOML file
  encrypt  (Re-)encrypt unencrypted values in an existinf etoml file
  decrypt  decrypt unencrypted values in an existinf etoml file
  help     Print this message or the help of the given subcommand(s)

Options:
  -h, --help  Print help

In you app you can define a struct with the matching fields to decode your secrets into:

use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize)]
struct AppSecrets {
    github: String
}

fn main() -> Result<(), etoml::EtomlError>  {
    let secrets = etoml::decrypt_default::<AppSecrets>()?;
    println!("Github key: {}", secrets.github);
    Ok(())
}

Structs

Enums

Functions