basil 0.7.1

Client library for Basil, the host-local secrets broker: your app never touches the key.
Documentation
# SPDX-FileCopyrightText: 2026 OpenBasil Contributors
#
# SPDX-License-Identifier: Apache-2.0

[package]
name = "basil"
description = "Client library for Basil, the host-local secrets broker: your app never touches the key."
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
homepage.workspace = true
repository.workspace = true
documentation = "https://docs.rs/basil"
keywords = ["basil", "grpc", "cryptography", "secrets", "client"]
categories = ["cryptography", "api-bindings", "authentication"]
rust-version = "1.85"
publish = true

[dependencies]
tokio = { workspace = true }
basil-proto = { workspace = true }
basil-cose = { workspace = true }
tonic = { workspace = true }
prost = { workspace = true }
prost-types = { workspace = true }
hyper-util = { workspace = true }
tower = { workspace = true }
serde = { workspace = true, features = ["std"] }
serde_json = { workspace = true, features = ["std"] }
thiserror = { workspace = true }
tracing = { workspace = true }

# Pure-Rust crypto for the client-side streaming encryption container. These are
# the same RustCrypto family already used by basil-core; none of them pull in
# OpenBao, a tonic server, age, or argon2, so the published `basil` client crate
# stays free of broker/server dependencies.
# Direct dep only to enable `aes/zeroize` (round-key scrubbing) for aes-gcm.
aes = { workspace = true }
aes-gcm = { workspace = true }
chacha20poly1305 = { workspace = true }
ml-kem = { workspace = true }
hkdf = { workspace = true }
sha2 = { workspace = true }
rand = { workspace = true }
zeroize = { workspace = true }

[dev-dependencies]
hex = { workspace = true }
tokio-stream = { workspace = true }

[lints]
workspace = true