[package]
name = "purple-ssh"
version = "2.45.0"
edition = "2024"
description = "Open-source terminal SSH manager and SSH config editor. Search hundreds of hosts, sync from 16 clouds, transfer files, manage Docker and Podman over SSH, sign short-lived Vault SSH certs and expose an MCP server for AI agents. Rust TUI, MIT licensed."
license = "MIT"
repository = "https://github.com/erickochen/purple"
homepage = "https://getpurple.sh"
readme = "README.md"
keywords = ["ssh", "ssh-client", "tui", "ssh-manager", "mcp"]
categories = ["command-line-utilities", "development-tools"]
rust-version = "1.86"
exclude = [".github/", ".gitignore", "demo.gif", "demo.webm", "screenshots/", "preview.png"]

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

[[bin]]
name = "purple"
path = "src/main.rs"

[dependencies]
ratatui = "0.30"
crossterm = "0.29"
clap = { version = "4", features = ["derive"] }
clap_complete = "4"
dirs = "6"
glob = "0.3"
anyhow = "1"
thiserror = "2"
unicode-width = "0.2.2"
ureq = { version = "3", features = ["json", "native-tls"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sha1 = "0.11"
sha2 = "0.10"
hmac = "0.12"
quick-xml = { version = "0.39", features = ["serde", "serialize"] }
rsa = { version = "0.9", features = ["sha2"] }
base64 = "0.22"
libc = "0.2"
log = "0.4"
simplelog = "0.12"
semver = "1"

# musl static builds need OpenSSL compiled from source. Without this,
# native-tls (pulled by ureq) can't find a musl-compatible system openssl
# on Ubuntu CI runners. No effect on glibc/darwin builds.
[target.'cfg(target_env = "musl")'.dependencies]
openssl = { version = "0.10", features = ["vendored"] }

[dev-dependencies]
mockito = "1.7.2"
proptest = "1"
tempfile = "3"

[profile.release]
strip = true
lto = true
opt-level = "z"
