cryptex 2.0.0

Cryptex uses system keyrings to store and retrieve secrets or a local file
[package]
name = "cryptex"
authors = ["Michael Lodder <redmike7@gmail.com>"]
categories = []
description = """
Cryptex uses system keyrings to store and retrieve secrets
or a local file
"""
documentation = "https://docs.rs/cryptex/"
edition = "2024"
homepage = "https://github.com/mikelodder7/cryptex"
keywords = ["secrets", "vault", "keyring"]
license = "MIT/Apache-2.0"
repository = "https://github.com/mikelodder7/cryptex"
readme = "README.md"
version = "2.0.0"

[lib]
crate-type = ["staticlib", "rlib", "cdylib"]

[[bin]]
name = "cryptex"

[features]
default = ["linux-secret-service", "macos-keychain", "windows-credentials"]
file = ["argon2", "chacha20poly1305", "dirs", "rusqlite"]
linux-secret-service = ["secret-service", "uzers"]
macos-keychain = ["security-framework", "security-framework-sys", "core-foundation", "core-foundation-sys", "uzers"]
windows-credentials = ["windows"]
serde = ["dep:serde", "postcard"]

[dependencies]
clap = "4"
colored = "3.0"
hex = "0.4"
rpassword = "7"
postcard = { version = "1", features = ["use-std"] , optional = true }
serde = { version = "1", optional = true }
subtle = "2"
whoami = "2"
zeroize = { version = "1", features = ["zeroize_derive"] }

argon2 = { version = "0.5", optional = true }
chacha20poly1305 = { version = "0.10", optional = true }
dirs = { version = "6.0", optional = true }
rusqlite = { version = "0.38", features = ["bundled-sqlcipher-vendored-openssl"], optional = true }

[target.'cfg(any(target_os = "macos", target_os = "linux"))'.dependencies]
uzers = { version = "0.12", optional = true }

[target.'cfg(target_os = "macos")'.dependencies]
security-framework = { version = "3", optional = true }
security-framework-sys = { version = "2.12", optional = true }
core-foundation = { version = "0.10", optional = true }
core-foundation-sys = { version = "0.8.7", optional = true }

[target.'cfg(target_os = "linux")'.dependencies]
secret-service = { version = "5", features = ["rt-tokio-crypto-rust"], optional = true }

[target.'cfg(target_os = "windows")'.dependencies]
windows = { version = "0.62", features = [
    "Win32_Foundation",
    "Win32_Security_Credentials",
    "Win32_Security_Cryptography",
], optional = true }