- 主机对话框「分组」下新增「连接方式」分段控件:SSH 跳板选已保存的主机、可多级(只走列出的链,跳板主机自己的连接方式不生效),代理连接支持 HTTP(CONNECT)和 SOCKS5,用户名和密码可选,代理密码进系统钥匙串 - SshConnector 按路由建立底层流:代理握手后的 TCP,或上一台跳板的 direct-tcpip 通道;跳板连接随最终连接一起关闭;跳板和代理的问答与报错写明是哪一台 - 数据库升到第 11 版,新增 session_jumps / session_proxies 两张表;删除被用作跳板的主机时留下「已删除的主机」占位,连接时报错,不悄悄改成直连 - 改跳板主机的地址或认证方式,经过它的主机也会重连;删除确认框写明有几台主机把它用作跳板 - 新增代理握手单元测试、跳板与代理的协议测试和对话框 UI 测试
89 lines
2.5 KiB
TOML
89 lines
2.5 KiB
TOML
[package]
|
|
name = "shellrs"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
publish = false
|
|
description = "SSH session manager with local terminal support"
|
|
default-run = "shellrs"
|
|
|
|
# The app. On macOS and Linux it doubles as the `shellrs` command when
|
|
# started with arguments.
|
|
[[bin]]
|
|
name = "shellrs"
|
|
path = "src/main.rs"
|
|
|
|
# The `shellrs` command on its own, as a console program: Windows needs it,
|
|
# because the app is a GUI program there and has no console to print to.
|
|
[[bin]]
|
|
name = "shellrs-cli"
|
|
path = "src/bin/shellrs-cli.rs"
|
|
|
|
[dependencies]
|
|
gpui-kit = "0.6.1"
|
|
alacritty_terminal = "0.26"
|
|
anyhow = "1"
|
|
async-channel = "2"
|
|
base64 = "0.22"
|
|
clap = { version = "4", features = ["derive"] }
|
|
dirs = "6"
|
|
futures = "0.3"
|
|
portable-pty = "0.9"
|
|
rand = "0.9"
|
|
russh = "0.63"
|
|
russh-sftp = "=3.0.0"
|
|
serde_json = "1"
|
|
sys-locale = "0.3"
|
|
sha2 = "0.10"
|
|
uuid = { version = "1", features = ["v4"] }
|
|
chrono = "0.4"
|
|
rusqlite = { version = "0.40", features = ["bundled"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
tokio = { version = "1", features = ["fs", "io-util", "macros", "net", "rt", "sync", "time"] }
|
|
unicode-width = "0.2"
|
|
zeroize = "1"
|
|
keyring = "4"
|
|
trash = "5"
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
windows-registry = "0.6"
|
|
windows-sys = { version = "0.61", features = [
|
|
"Win32_Security",
|
|
"Win32_Security_Authorization",
|
|
"Win32_Storage_FileSystem",
|
|
"Win32_System_IO",
|
|
"Win32_System_Pipes",
|
|
"Win32_System_Threading",
|
|
"Win32_UI_WindowsAndMessaging",
|
|
] }
|
|
|
|
[dev-dependencies]
|
|
tokio = { version = "1", features = ["process", "test-util"] }
|
|
gpui-kit = { version = "0.6.1", features = ["test-support"] }
|
|
tempfile = "3"
|
|
|
|
# Optimize the rendering stack in debug builds (per gpui-kit's installation
|
|
# guide); shellrs itself stays unoptimized and debuggable.
|
|
[profile.dev.package]
|
|
gpui-pre = { opt-level = 3 }
|
|
gpui-pre-platform = { opt-level = 3 }
|
|
gpui-pre-macos = { opt-level = 3 }
|
|
gpui-base = { opt-level = 3 }
|
|
gpui-component = { opt-level = 3 }
|
|
gpui-kit = { opt-level = 3 }
|
|
gpui-kit-assets = { opt-level = 3 }
|
|
cosmic-text = { opt-level = 3 }
|
|
rustybuzz = { opt-level = 3 }
|
|
swash = { opt-level = 3 }
|
|
taffy = { opt-level = 3 }
|
|
ttf-parser = { opt-level = 3 }
|
|
resvg = { opt-level = 3 }
|
|
usvg = { opt-level = 3 }
|
|
zed-font-kit = { opt-level = 3 }
|
|
# Generating an RSA key and deriving a key from a passphrase take seconds
|
|
# unoptimized; the credential form does both.
|
|
rsa = { opt-level = 3 }
|
|
crypto-bigint = { opt-level = 3 }
|
|
crypto-primes = { opt-level = 3 }
|
|
bcrypt-pbkdf = { opt-level = 3 }
|
|
blowfish = { opt-level = 3 }
|