openbao 1.0.2

Secure, typed, async Rust SDK for OpenBao
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
rust-version = "1.90"
name = "openbao"
version = "1.0.2"
build = "build.rs"
include = [
    "build.rs",
    "src/**",
    "tests/**",
    "examples/**",
    "docs/**",
    "release-notes/**",
    "scripts/**",
    "deploy/podman/compose.dev.yml",
    "deploy/podman/openbao.dev.env.example",
    "deploy/podman/openbao.hcl",
    ".github/CODEOWNERS",
    ".github/FUNDING.yml",
    ".github/ISSUE_TEMPLATE/**",
    ".github/PULL_REQUEST_TEMPLATE.md",
    ".github/dependabot.yml",
    ".github/workflows/**",
    "Cargo.toml",
    "Cargo.lock",
    "rust-toolchain.toml",
    "deny.toml",
    "README.md",
    "CONTRIBUTING.md",
    "CHANGELOG.md",
    "SECURITY.md",
    "LICENSE-*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Secure, typed, async Rust SDK for OpenBao"
homepage = "https://github.com/valkyoth/openbao-rust-crate"
documentation = "https://docs.rs/openbao"
readme = "README.md"
keywords = [
    "openbao",
    "vault",
    "secrets",
    "security",
]
categories = [
    "api-bindings",
    "authentication",
    "cryptography",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/valkyoth/openbao-rust-crate"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
allow-sha1-acknowledged = []
allow-weak-jitter-fallback-acknowledged = []
approle = []
cert-auth = []
cubbyhole = []
database = []
default = [
    "approle",
    "cert-auth",
    "cubbyhole",
    "database",
    "identity",
    "jwt-auth",
    "kerberos-auth",
    "kubernetes-auth",
    "ldap-auth",
    "userpass",
    "token",
    "kv1",
    "kv2",
    "kubernetes",
    "ldap",
    "pki",
    "rabbitmq",
    "ssh",
    "totp",
    "transit",
    "sys",
    "rustls-tls",
]
http2 = ["reqwest/http2"]
identity = []
insecure-ldap-tls-acknowledged = []
jwt-auth = []
kerberos-auth = []
kubernetes = []
kubernetes-auth = []
kv1 = []
kv2 = []
ldap = []
ldap-auth = []
native-tls = ["reqwest/native-tls"]
native-tls-acknowledged = []
operator-ops = []
operator-ops-acknowledged = []
pki = []
rabbitmq = []
radius-auth = []
radius-auth-acknowledged = []
rustls-tls = ["reqwest/rustls"]
sensitive-http-test-only = []
sensitive-http-test-only-acknowledged = []
ssh = []
sys = []
time = ["dep:time"]
tls12-acknowledged = []
token = []
tokio-helpers = ["dep:tokio"]
totp = []
tracing = ["dep:tracing"]
transit = []
transit-bytes = ["dep:base64-ng"]
transit-import = [
    "dep:aes-kw",
    "dep:base64-ng",
    "dep:openssl",
    "dep:rand",
]
transit-import-acknowledged = []
userpass = []

[lib]
name = "openbao"
path = "src/lib.rs"

[[example]]
name = "approle"
path = "examples/approle.rs"

[[example]]
name = "bootstrap"
path = "examples/bootstrap.rs"

[[example]]
name = "from_env"
path = "examples/from_env.rs"

[[example]]
name = "kv2"
path = "examples/kv2.rs"

[[example]]
name = "sys_admin"
path = "examples/sys_admin.rs"

[[test]]
name = "http_client"
path = "tests/http_client.rs"

[[test]]
name = "openbao_integration"
path = "tests/openbao_integration.rs"

[[test]]
name = "serde_fixtures"
path = "tests/serde_fixtures.rs"

[dependencies.aes-kw]
version = "0.3.1"
features = ["zeroize"]
optional = true
default-features = false

[dependencies.base64-ng]
version = "1.0.8"
features = ["alloc"]
optional = true
default-features = false

[dependencies.getrandom]
version = "0.4.2"

[dependencies.openssl]
version = "0.10.80"
optional = true

[dependencies.rand]
version = "0.10.1"
features = [
    "std",
    "thread_rng",
]
optional = true
default-features = false

[dependencies.reqwest]
version = "0.13.4"
features = ["json"]
default-features = false

[dependencies.secrecy]
version = "0.10.3"
features = ["serde"]

[dependencies.serde]
version = "1.0.228"
features = ["derive"]

[dependencies.serde_json]
version = "1.0.150"

[dependencies.subtle]
version = "2.6.1"

[dependencies.time]
version = "0.3.47"
features = ["parsing"]
optional = true
default-features = false

[dependencies.tokio]
version = "1.52.3"
features = ["time"]
optional = true
default-features = false

[dependencies.tracing]
version = "0.1.44"
features = ["std"]
optional = true
default-features = false

[dependencies.zeroize]
version = "1.8.2"

[dev-dependencies.tokio]
version = "1.52.3"
features = [
    "macros",
    "rt-multi-thread",
    "net",
    "io-util",
    "time",
]

[lints.clippy]
dbg_macro = "deny"
expect_used = "deny"
panic = "deny"
print_stderr = "deny"
print_stdout = "deny"
todo = "deny"
unwrap_used = "deny"

[lints.rust]
missing_docs = "warn"
unsafe_code = "forbid"