[package] name = "secret-vault" version = "1.14.0" authors = ["Abdulla Abdurakhmanov "] edition = "2021" license = "Apache-2.0" description = "Library provides a secure vault to store securely application secrets in memory from Google/AWS/K8S and environment variables" homepage = "https://github.com/abdolence/secret-vault-rs" repository = "https://github.com/abdolence/secret-vault-rs" documentation = "https://docs.rs/secret-vault" categories = ["cryptography","api-bindings"] keywords = ["secret", "google", "aws"] readme = "../README.md" include = ["Cargo.toml", "src/**/*.rs", "../README.md", "../LICENSE", "../SECURITY.md"] [badges] maintenance = { status = "actively-developed" } [lib] name = "secret_vault" path = "src/lib.rs" bench = false [dependencies] tracing = "0.1" secret-vault-value = { version = "0.3", features= ["hex"] } rvstruct = "0.3" rsb_derive = "0.5" async-trait = "0.1" chrono = { version = "0.4", default-features = false, features = ["clock", "std", "serde"] } zeroize = { version = "1.8", features = ["std", "derive"] } tokio = { version = "1", features = ["sync", "tracing", "macros", "rt", "time"] } hex = "0.4" ring = { version = "0.17", features = ["default", "std"], optional = true } serde = { version = "1", features = ["derive"], optional = true } gcloud-sdk = { version = "0.25", optional = true } aws-config = { version = "1", optional = true } aws-smithy-types-convert = { version = "0.60", optional = true, features=["convert-chrono"] } aws-sdk-secretsmanager = { version = "1", optional = true } aws-sdk-kms = { version = "1", optional = true } kms-aead = { version = "0.19", optional = true } ahash = { version = "0.8", optional = true } [dev-dependencies] serde_json = { version = "1" } proptest = "1.4" tracing-subscriber = { version = "0.3", features = ["env-filter"] } tempfile = "3.10" tokio = { version = "1", features = ["full"] } criterion = { version = "0.5", features = ["async", "async_futures", "cargo_bench_support", "html_reports", "futures", "tokio", "async_tokio"] } [build-dependencies] cargo-husky = { version = "1.5", default-features = false, features = ["run-for-all", "prepush-hook", "run-cargo-fmt"] } [features] default = [] serde = ["dep:serde", "chrono/serde", "secret-vault-value/serde"] ring-aead-encryption = ["dep:ring", "kms-aead/ring-aead-encryption"] kms = ["kms-aead/default"] gcp = ["gcloud-sdk"] gcp-secretmanager = ["gcp","gcloud-sdk/google-cloud-secretmanager-v1", "ring-aead-encryption"] gcp-kms-encryption = ["gcp", "kms", "gcloud-sdk/google-cloud-kms-v1", "kms-aead/gcp-kms-encryption", "ring-aead-encryption"] aws = ["dep:aws-config", "dep:aws-smithy-types-convert"] aws-secretmanager = ["aws", "dep:aws-sdk-secretsmanager"] aws-kms-encryption = ["aws", "kms", "dep:aws-sdk-kms", "kms-aead/aws-kms-encryption", "ring-aead-encryption"] ahash = ["dep:ahash"] [package.metadata.release] tag-prefix="" [package.metadata.docs.rs] all-features = true [[example]] name = "gcp_secret_manager_vault" path = "examples/gcp_secret_manager_vault.rs" required-features = ["gcp-secretmanager", "ring-aead-encryption"] [[example]] name = "aws_secret_manager_vault" path = "examples/aws_secret_manager_vault.rs" required-features = ["aws-secretmanager", "ring-aead-encryption"] [[example]] name = "kms_gcp_secret_manager_vault" path = "examples/kms_gcp_secret_manager_vault.rs" required-features = ["gcp-secretmanager", "gcp-kms-encryption"] [[example]] name = "kms_aws_secret_manager_vault" path = "examples/kms_aws_secret_manager_vault.rs" required-features = ["aws-secretmanager", "aws-kms-encryption"] [[example]] name = "insecure_env_secret_vault" path = "examples/insecure_env_secret_vault.rs" [[example]] name = "auto_refresh_secret_manager_vault" path = "examples/auto_refresh_secret_manager_vault.rs" required-features = ["aws-secretmanager"] [[bench]] name = "read_vault_bench" path = "benches/read_vault_bench.rs" required-features = ["ring-aead-encryption", "ahash"] harness = false [[example]] name = "multiple_sources" path = "examples/multiple_sources.rs" required-features = ["aws-secretmanager"] [[example]] name = "files_source" path = "examples/files_source.rs" [[example]] name = "hashmap_snapshot" path = "examples/hashmap_snapshot.rs" required-features = ["ahash"] [[example]] name = "secret_gen_source" path = "examples/secret_gen_source.rs" required-features = ["ring-aead-encryption"]