[package]
name = "uv-keyring"
version = "0.0.41"
description = "This is an internal component crate of uv"
edition = { workspace = true }
rust-version = { workspace = true }
homepage = { workspace = true }
repository = { workspace = true }
authors = { workspace = true }
license = { workspace = true }

[lints]
workspace = true

[features]
default = ["apple-native", "secret-service", "windows-native"]
native-auth = []

## Use the built-in Keychain Services on macOS
apple-native = ["dep:security-framework"]
## Use the secret-service on *nix.
secret-service = ["dep:secret-service"]
## Use the built-in credential store on Windows
windows-native = ["dep:windows", "dep:byteorder"]

[dependencies]
async-trait = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true }

[target.'cfg(target_os = "macos")'.dependencies]
security-framework = { workspace = true, optional = true }

[target.'cfg(any(target_os = "linux",target_os = "freebsd", target_os = "openbsd"))'.dependencies]
secret-service = { workspace = true, features = ["rt-tokio-crypto-rust"], optional = true }

[target.'cfg(target_os = "windows")'.dependencies]
byteorder = { workspace = true, optional = true }
windows = { workspace = true, features = ["Win32_Foundation", "Win32_Security_Credentials"], optional = true }
zeroize = { workspace = true }

[dev-dependencies]
env_logger = "0.11.5"
fastrand = { workspace = true }

[package.metadata.docs.rs]
default-target = "x86_64-unknown-linux-gnu"
targets = ["x86_64-unknown-linux-gnu", "aarch64-apple-darwin", "x86_64-pc-windows-msvc"]
