13 unstable releases (3 breaking)

0.4.6 Aug 16, 2024
0.4.5 Jun 3, 2024
0.4.4 Apr 8, 2024
0.4.1 Mar 14, 2024
0.1.0 Aug 27, 2023

#229 in Authentication

Download history 88/week @ 2024-05-20 119/week @ 2024-05-27 212/week @ 2024-06-03 109/week @ 2024-06-10 27/week @ 2024-06-17 66/week @ 2024-06-24 2/week @ 2024-07-01 32/week @ 2024-07-08 49/week @ 2024-07-15 32/week @ 2024-07-22 55/week @ 2024-07-29 39/week @ 2024-08-05 181/week @ 2024-08-12 81/week @ 2024-08-19 146/week @ 2024-08-26 102/week @ 2024-09-02

514 downloads per month
Used in 8 crates (6 directly)

MIT license

15KB
173 lines

🔐 secret-lib

Rust library to retrieve secrets from different sources: from raw string, from shell commands using process-lib or from global keyring using keyring-lib.

See the full API documentation and some examples.

use secret::{keyring, Secret};

#[tokio::main]
async fn main() {
    // raw secret

    let mut secret = Secret::new_raw("secret");
    assert_eq!(secret.get().await.unwrap(), "secret");

    // shell command secret

    let mut secret = Secret::new_cmd("echo 'secret'");
    assert_eq!(secret.get().await.unwrap(), "secret");

    // keyring secret

    let entry = keyring::KeyringEntry::try_new("key")
        .unwrap()
        .try_with_secret("secret")
        .await
        .unwrap();
    let mut secret = Secret::new_keyring_entry(entry);
    assert_eq!(secret.get().await.unwrap(), "secret");
}

Development

The development environment is managed by Nix. Running nix-shell will spawn a shell with everything you need to get started with the lib: cargo, cargo-watch, rust-bin, rust-analyzer

# Start a Nix shell
$ nix-shell

# then build the lib
$ cargo build -p secret-lib

Contributing

A bug tracker is available on SourceHut. [send an email]

A mailing list is available on SourceHut. [send an email] [subscribe] [unsubscribe]

If you want to report a bug, please send an email at ~soywod/pimalaya@todo.sr.ht.

If you want to propose a feature or fix a bug, please send a patch at ~soywod/pimalaya@lists.sr.ht. The simplest way to send a patch is to use git send-email, follow this guide to configure git properly.

If you just want to discuss about the project, feel free to join the Matrix workspace #pimalaya or contact me directly @soywod. You can also use the mailing list.

Sponsoring

nlnet

Special thanks to the NLnet foundation and the European Commission that helped the project to receive financial support from:

If you appreciate the project, feel free to donate using one of the following providers:

GitHub PayPal Ko-fi Buy Me a Coffee Liberapay

Dependencies

~0.3–12MB
~155K SLoC