-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCargo.toml
More file actions
105 lines (97 loc) · 2.69 KB
/
Cargo.toml
File metadata and controls
105 lines (97 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
[workspace]
members = [
".",
"crates/bssh-russh",
]
[package]
name = "bssh"
version = "2.1.1"
authors = ["Jeongkyu Shin <inureyes@gmail.com>"]
description = "Parallel SSH command execution tool for cluster management"
license = "Apache-2.0"
repository = "https://github.com/lablup/bssh"
readme = "README.md"
keywords = ["cli", "rust"]
categories = ["command-line-utilities"]
edition = "2024"
[dependencies]
bytes = "1.11.1"
tokio = { version = "1.51.1", features = ["full"] }
# Use our internal russh fork with session loop fixes
# - Development: uses local path (crates/bssh-russh)
# - Publishing: uses crates.io version (path ignored)
russh = { package = "bssh-russh", version = "0.60.1", path = "crates/bssh-russh" }
russh-sftp = "2.1.1"
clap = { version = "4.6.0", features = ["derive", "env"] }
anyhow = "1.0.102"
thiserror = "2.0.18"
tracing = "0.1.43"
tracing-subscriber = { version = "0.3.23", features = ["env-filter"] }
serde = { version = "1.0.228", features = ["derive"] }
serde_yaml = "0.9"
futures = "0.3.32"
async-trait = "0.1.89"
indicatif = "0.18.4"
rpassword = "7.4.0"
directories = "6.0.0"
dirs = "6.0"
chrono = { version = "0.4.44", features = ["serde"] }
glob = "0.3.3"
whoami = "2.1.1"
owo-colors = "4.3.0"
unicode-width = "0.2.2"
terminal_size = "0.4.4"
once_cell = "1.21.4"
zeroize = { version = "1.8.2", features = ["derive"] }
secrecy = { version = "0.10.3", features = ["serde"] }
rustyline = "18.0.0"
crossterm = "0.29"
ratatui = "0.30"
regex = "1.12.3"
lazy_static = "1.5"
ctrlc = "3.5.2"
signal-hook = "0.4.4"
nix = { version = "0.31", features = ["fs", "poll", "process", "signal", "term"] }
atty = "0.2.14"
arrayvec = "0.7.6"
smallvec = "1.15.1"
lru = "0.16.2"
uuid = { version = "1.23.0", features = ["v4"] }
fastrand = "2.4.1"
tokio-util = "0.7.17"
socket2 = "0.6"
shell-words = "1.1.1"
libc = "0.2"
ipnetwork = "0.21"
bcrypt = "0.19"
argon2 = "0.5"
rand = "0.10"
ssh-key = { version = "0.6", features = ["std"] }
async-compression = { version = "0.4", features = ["tokio", "gzip"] }
serde_json = "1.0"
opentelemetry = "0.31"
opentelemetry_sdk = { version = "0.31", features = ["rt-tokio", "logs"] }
opentelemetry-otlp = { version = "0.31", features = ["grpc-tonic", "logs"] }
url = "2.5"
tokio-rustls = "0.26"
rustls-native-certs = "0.8"
[target.'cfg(target_os = "macos")'.dependencies]
security-framework = "3.7.0"
[dev-dependencies]
tempfile = "3.27.0"
mockito = "1.7.2"
once_cell = "1.21.4"
tokio-test = "0.4"
serial_test = "3.4"
insta = "1.47"
criterion = { version = "0.8", features = ["html_reports"] }
mockall = "0.14"
[[bench]]
name = "large_output_benchmark"
harness = false
[[bin]]
name = "bssh-server"
path = "src/bin/bssh_server.rs"
[[bin]]
name = "bssh-keygen"
path = "src/bin/bssh_keygen.rs"