libvault 0.2.1

the libvault is modified from RustyVault
Documentation
# @generated by `cargo buckal`

load("@buckal//:cargo_manifest.bzl", "cargo_manifest")
load("@buckal//:wrapper.bzl", "buildscript_run", "rust_binary", "rust_library")

filegroup(
    name = "libvault-vendor",
    srcs = glob(["**/**"]),
    out = "vendor",
)

cargo_manifest(
    name = "libvault-manifest",
    vendor = ":libvault-vendor",
)

rust_library(
    name = "libvault",
    srcs = [":libvault-vendor"],
    crate = "libvault",
    crate_root = "vendor/src/lib.rs",
    edition = "2024",
    env = {
        "OUT_DIR": "$(location :libvault-build-script-run[out_dir])",
    },
    features = [
        "crypto_adaptor_openssl",
        "default",
        "etcd-client",
        "storage_xline",
    ],
    rustc_flags = [
        "@$(location :libvault-build-script-run[rustc_flags])",
        "@$(location :libvault-manifest[env_flags])",
    ],
    named_deps = {
        "hcl": "//third-party/rust/crates/hcl-rs/0.18.7:hcl-rs",
        "webpki": "//third-party/rust/crates/rustls-webpki/0.103.9:rustls-webpki",
    },
    os_deps = {
        "linux": ["//third-party/rust/crates/daemonize/0.5.0:daemonize"],
        "macos": ["//third-party/rust/crates/daemonize/0.5.0:daemonize"],
    },
    visibility = ["PUBLIC"],
    deps = [
        "//third-party/rust/crates/anyhow/1.0.101:anyhow",
        "//third-party/rust/crates/arc-swap/1.8.2:arc-swap",
        "//third-party/rust/crates/as-any/0.3.2:as-any",
        "//third-party/rust/crates/async-trait/0.1.89:async-trait",
        "//third-party/rust/crates/base64/0.22.1:base64",
        "//third-party/rust/crates/bcrypt/0.17.1:bcrypt",
        "//third-party/rust/crates/better_default/1.0.5:better_default",
        "//third-party/rust/crates/blake2b_simd/1.0.4:blake2b_simd",
        "//third-party/rust/crates/blake3/1.8.3:blake3",
        "//third-party/rust/crates/builder-pattern/0.4.2:builder-pattern",
        "//third-party/rust/crates/chrono/0.4.43:chrono",
        "//third-party/rust/crates/crossbeam-channel/0.5.15:crossbeam-channel",
        "//third-party/rust/crates/dashmap/6.1.0:dashmap",
        "//third-party/rust/crates/derivative/2.2.0:derivative",
        "//third-party/rust/crates/derive_more/0.99.20:derive_more",
        "//third-party/rust/crates/enum-map/2.7.3:enum-map",
        "//third-party/rust/crates/etcd-client/0.17.0:etcd-client",
        "//third-party/rust/crates/foreign-types/0.3.2:foreign-types",
        "//third-party/rust/crates/glob/0.3.3:glob",
        "//third-party/rust/crates/go-defer/0.1.0:go-defer",
        "//third-party/rust/crates/hex/0.4.3:hex",
        "//third-party/rust/crates/humantime/2.3.0:humantime",
        "//third-party/rust/crates/ipnetwork/0.17.0:ipnetwork",
        "//third-party/rust/crates/itertools/0.14.0:itertools",
        "//third-party/rust/crates/lazy_static/1.5.0:lazy_static",
        "//third-party/rust/crates/libc/0.2.182:libc",
        "//third-party/rust/crates/lockfile/0.4.0:lockfile",
        "//third-party/rust/crates/log/0.4.29:log",
        "//third-party/rust/crates/openssl-sys/0.9.111:openssl-sys",
        "//third-party/rust/crates/openssl/0.10.75:openssl",
        "//third-party/rust/crates/pem/3.0.6:pem",
        "//third-party/rust/crates/pgp/0.19.0:pgp",
        "//third-party/rust/crates/priority-queue/2.7.0:priority-queue",
        "//third-party/rust/crates/qlean/0.2.3:qlean",
        "//third-party/rust/crates/radix_trie/0.2.1:radix_trie",
        "//third-party/rust/crates/rand/0.9.2:rand",
        "//third-party/rust/crates/rand_chacha/0.3.1:rand_chacha",
        "//third-party/rust/crates/regex/1.12.3:regex",
        "//third-party/rust/crates/reqwest/0.12.28:reqwest",
        "//third-party/rust/crates/rustls-pemfile/2.2.0:rustls-pemfile",
        "//third-party/rust/crates/rustls/0.23.36:rustls",
        "//third-party/rust/crates/serde/1.0.228:serde",
        "//third-party/rust/crates/serde_bytes/0.11.19:serde_bytes",
        "//third-party/rust/crates/serde_derive/1.0.228:serde_derive",
        "//third-party/rust/crates/serde_json/1.0.149:serde_json",
        "//third-party/rust/crates/serde_yaml/0.9.34+deprecated:serde_yaml",
        "//third-party/rust/crates/smallvec/1.15.1:smallvec",
        "//third-party/rust/crates/ssh-key/0.6.7:ssh-key",
        "//third-party/rust/crates/stretto/0.8.4:stretto",
        "//third-party/rust/crates/strum/0.25.0:strum",
        "//third-party/rust/crates/strum_macros/0.25.3:strum_macros",
        "//third-party/rust/crates/tempfile/3.25.0:tempfile",
        "//third-party/rust/crates/thiserror/2.0.18:thiserror",
        "//third-party/rust/crates/tokio/1.49.0:tokio",
        "//third-party/rust/crates/tonic/0.14.4:tonic",
        "//third-party/rust/crates/tracing/0.1.44:tracing",
        "//third-party/rust/crates/ureq/2.12.1:ureq",
        "//third-party/rust/crates/url/2.5.8:url",
        "//third-party/rust/crates/webpki-roots/0.26.11:webpki-roots",
        "//third-party/rust/crates/x509-parser/0.18.1:x509-parser",
        "//third-party/rust/crates/zeroize/1.8.2:zeroize",
    ],
)

rust_binary(
    name = "libvault-build-script-build",
    srcs = [":libvault-vendor"],
    crate = "build_script_build",
    crate_root = "vendor/build.rs",
    edition = "2024",
    features = [
        "crypto_adaptor_openssl",
        "default",
        "etcd-client",
        "storage_xline",
    ],
    rustc_flags = ["@$(location :libvault-manifest[env_flags])"],
    visibility = [],
    deps = ["//third-party/rust/crates/toml/0.8.23:toml"],
)

buildscript_run(
    name = "libvault-build-script-run",
    package_name = "libvault",
    buildscript_rule = ":libvault-build-script-build",
    env_srcs = [
        "//third-party/rust/crates/openssl-sys/0.9.111:openssl-sys-build-script-main-run[metadata]",
        ":libvault-manifest[env_dict]",
    ],
    features = [
        "crypto_adaptor_openssl",
        "default",
        "etcd-client",
        "storage_xline",
    ],
    version = "0.1.0",
    manifest_dir = ":libvault-vendor",
    visibility = ["PUBLIC"],
)