[package]
edition = "2024"
name = "locket"
version = "0.17.3"
authors = ["Brian Bradley <brian.bradley.p@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Helper tool for secret injection as a process dependency"
homepage = "https://github.com/bpbradley/locket"
documentation = "https://docs.rs/locket"
readme = "README.md"
keywords = [
"secrets",
"docker",
]
categories = [
"command-line-utilities",
"config",
]
license = "AGPL-3.0-or-later"
repository = "https://github.com/bpbradley/locket"
[features]
bws = [
"dep:bitwarden",
"dep:uuid",
]
compose = ["dep:dotenvy"]
connect = [
"dep:reqwest",
"dep:percent-encoding",
]
default = ["full"]
dev = [
"locket-docs",
"testing",
"full",
]
exec = [
"dep:dotenvy",
"nix/signal",
"nix/term",
"tokio/process",
]
full = [
"op",
"connect",
"bws",
"infisical",
"compose",
"exec",
"volume",
]
infisical = [
"dep:reqwest",
"dep:serde_urlencoded",
"dep:percent-encoding",
"dep:regex",
"dep:uuid",
]
locket-docs = []
op = [
"tokio/process",
"dep:percent-encoding",
]
testing = []
volume = [
"dep:hyper",
"dep:hyper-util",
"dep:http-body-util",
"dep:tower",
"dep:tower-service",
"nix/mount",
"dep:chrono",
]
[lib]
name = "locket"
path = "src/lib.rs"
[[bin]]
name = "locket"
path = "src/main.rs"
[[test]]
name = "parity"
path = "tests/parity.rs"
[[test]]
name = "provider"
path = "tests/provider.rs"
[[test]]
name = "validation"
path = "tests/validation.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.bitwarden]
version = "2"
features = ["secrets"]
optional = true
[dependencies.chrono]
version = "0.4"
features = [
"serde",
"clock",
]
optional = true
default-features = false
[dependencies.clap]
version = "4"
features = [
"derive",
"env",
"string",
]
[dependencies.dotenvy]
version = "0.15"
optional = true
[dependencies.futures]
version = "0.3"
[dependencies.http-body-util]
version = "0.1"
optional = true
[dependencies.humantime]
version = "2"
[dependencies.hyper]
version = "1"
features = [
"server",
"http1",
]
optional = true
[dependencies.hyper-util]
version = "0.1"
features = ["tokio"]
optional = true
[dependencies.indexmap]
version = "2"
[dependencies.locket_derive]
version = "0.17.3"
[dependencies.nix]
version = "0.31"
features = [
"user",
"fs",
]
[dependencies.notify]
version = "8"
[dependencies.percent-encoding]
version = "2.3"
optional = true
[dependencies.regex]
version = "1.7"
optional = true
[dependencies.reqwest]
version = ">=0.12.24, <0.13"
features = [
"json",
"rustls-tls-webpki-roots",
]
optional = true
default-features = false
[dependencies.sanitize-filename]
version = "0.6"
[dependencies.secrecy]
version = "0.10.3"
features = ["serde"]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_urlencoded]
version = "0.7"
optional = true
[dependencies.sysexits]
version = "0.13"
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"sync",
"time",
"signal",
"fs",
]
[dependencies.tokio-util]
version = "0.7"
features = ["rt"]
[dependencies.toml]
version = "1"
[dependencies.tower]
version = "0.5"
optional = true
[dependencies.tower-service]
version = "0.3"
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"fmt",
"json",
]
[dependencies.url]
version = "2"
features = ["serde"]
[dependencies.uuid]
version = "1"
features = ["serde"]
optional = true
[dependencies.walkdir]
version = "2"
[dev-dependencies.assert_fs]
version = "1"
[profile.dist]
lto = "thin"
inherits = "release"
[profile.release]
opt-level = "z"
lto = true
codegen-units = 1
strip = true