Files
nyaterm/src-tauri/Cargo.toml
T
2026-10-07 23:43:24 +08:00

240 lines
6.7 KiB
TOML

[package]
name = "nyaterm"
version = "1.3.0"
description = "A modern remote terminal workspace built with Tauri, React, and Rust."
authors = ["Kang"]
edition = "2024"
rust-version = "1.94"
[profile.dev]
opt-level = 0
debug = true
strip = "none"
debug-assertions = true
overflow-checks = true
incremental = true
codegen-units = 256
lto = false
panic = "unwind"
rpath = false
[profile.release]
opt-level = "s"
lto = "thin"
codegen-units = 1
strip = true
debug = false
debug-assertions = false
overflow-checks = false
incremental = false
panic = "abort"
rpath = false
[profile.release-size]
inherits = "release"
opt-level = "s"
lto = true
codegen-units = 1
strip = true
debug = false
panic = "abort"
[profile.release-debug]
inherits = "release"
debug = "line-tables-only"
strip = "none"
split-debuginfo = "unpacked"
panic = "unwind"
[profile.fast-release]
inherits = "release"
opt-level = 1
lto = false
codegen-units = 256
incremental = true
debug = true
strip = "none"
panic = "unwind"
[lints.clippy]
pedantic = { level = "warn", priority = -1 }
# Allow common patterns that are noisy under pedantic
module_name_repetitions = "allow"
must_use_candidate = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
wildcard_imports = "allow"
cast_possible_truncation = "allow"
cast_sign_loss = "allow"
cast_precision_loss = "allow"
struct_excessive_bools = "allow"
too_many_lines = "allow"
unnecessary_wraps = "allow"
[lib]
# The `_lib` suffix may seem redundant but it is necessary
# to make the lib name unique and wouldn't conflict with the bin name.
# This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
name = "nyaterm_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[build-dependencies]
tauri-build = { version = "2", features = [] }
[dev-dependencies]
nyaterm-core = { path = "crates/nyaterm-core", features = ["test-support"] }
tokio = { version = "1", features = ["test-util"] }
[dependencies]
nyaterm-core = { path = "crates/nyaterm-core", features = ["desktop-importer"] }
tempfile = "3"
nyaterm-gpu = { path = "crates/nyaterm-gpu" }
nyaterm-otp = { path = "crates/otp" }
nyaterm-mcp-protocol = { path = "crates/nyaterm-mcp-protocol" }
nyaterm-plugin-runtime = { path = "crates/nyaterm-plugin-runtime" }
tauri = { version = "2", features = ["tray-icon", "protocol-asset", "macos-private-api"] }
tauri-plugin-opener = "2"
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["raw_value"] }
quick-xml = "0.40"
tokio = { version = "1", features = [
"rt-multi-thread",
"macros",
"sync",
"io-util",
"time",
"fs",
"process",
"net",
] }
tokio-util = { version = "0.7", features = ["rt"] }
russh = { path = "vendor/russh/russh", default-features = false, features = ["des", "dsa", "flate2", "ring", "rsa"] }
russh-sftp = { path = "vendor/russh-sftp" }
ssh-key = { version = "0.6", features = ["ed25519", "std"] }
portable-pty = "0.9.0"
uuid = { version = "1", features = ["v4"] }
async-trait = "0.1"
thiserror = "2"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "local-time"] }
time = { version = "0.3", features = ["formatting", "local-offset", "macros"] }
tracing-appender = "0.2"
nucleo-matcher = "0.3"
dirs = "6.0.0"
whoami = "1"
aes-gcm = "0.10"
aes = "0.8"
cbc = "0.1"
base64 = "0.22"
crypto_secretbox = "0.1"
keyring = { version = "3.6", features = [
"apple-native",
"windows-native",
"sync-secret-service",
"crypto-rust",
] }
rand = "0.8"
rusty-leveldb = "4.0"
sha2 = "0.10"
sha1 = "0.10"
sha3 = "0.10"
pbkdf2 = "0.12"
zeroize = "1"
tauri-plugin-dialog = "2"
tauri-plugin-deep-link = "2"
notify = { version = "8.2.0", features = ["serde"] }
lazy_static = "1.5.0"
open = "5"
tokio-socks = "0.5.2"
async-http-proxy = { version = "1.2.5", features = ["runtime-tokio", "basic-auth"] }
font-kit = "0.14.3"
reqwest = { version = "0.13", default-features = false, features = [
"socks",
"json",
"form",
"query",
"native-tls",
] }
reqwest_012_native_tls = { package = "reqwest", version = "0.12.28", default-features = false, features = [
"native-tls",
] }
genai = { version = "0.6.5", default-features = false, features = ["native-tls"] }
futures-util = "0.3"
regex = "1"
md-5 = "0.10"
hmac = "0.12"
hex = "0.4"
http = "1"
urlencoding = "2"
zip = "8"
encoding_rs = "0.8"
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "bmp", "gif", "webp"] }
rqrr = "0.9"
serialport = "4"
ironrdp = { path = "vendor/ironrdp/crates/ironrdp", default-features = false, features = ["client", "client-clipboard", "cliprdr", "connector", "core", "input", "pdu"] }
smallvec = "1"
strip-ansi-escapes = "0.2"
arboard = { version = "3", features = ["wayland-data-control"] }
x509-cert = { version = "0.2", default-features = false, features = ["std"] }
opendal = { version = "0.58", default-features = false, features = [
"executors-tokio",
"reqwest-rustls-tls",
"services-aliyun-drive",
"services-gdrive",
"services-onedrive",
"services-s3",
"services-webdav",
"layers-retry",
"layers-timeout",
"layers-tracing",
] }
redb = "4.1.0"
zmodem2 = { path = "vendor/zmodem2" }
vnc-rs = { path = "vendor/vnc-rs" }
[patch.crates-io]
picky = { path = "vendor/picky" }
sspi = { path = "vendor/sspi" }
portable-pty = { path = "vendor/portable-pty" }
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
tauri-plugin-updater = { version = "2", default-features = false, features = [
"native-tls",
"zip",
] }
tauri-plugin-process = "2"
tauri-plugin-single-instance = { version = "2", features = ["deep-link"] }
[target.'cfg(not(windows))'.dependencies]
ironrdp = { path = "vendor/ironrdp/crates/ironrdp", default-features = false, features = ["rustls"] }
[target.'cfg(unix)'.dependencies]
libc = "0.2"
[target.'cfg(windows)'.dependencies]
ironrdp = { path = "vendor/ironrdp/crates/ironrdp", default-features = false, features = ["native-tls"] }
webview2-com = "0.38.2"
# Native Acrylic window material. Pinned to 0.6 to match the version
# tauri 2.x already pulls in transitively, avoiding duplicate crate versions.
window-vibrancy = "0.6"
windows-sys = { version = "0.61", features = [
"Win32_Foundation",
"Win32_Security",
"Win32_Security_Authorization",
"Win32_Storage_FileSystem",
"Win32_System_LibraryLoader",
"Win32_System_Threading",
"Win32_UI_Input_KeyboardAndMouse",
] }
windows = { version = "0.61", features = [
"Wdk_System_SystemServices",
"Win32_Foundation",
"Win32_Graphics_Gdi",
"Win32_System_Threading",
"Win32_System_SystemInformation",
"Win32_System_DataExchange",
"Win32_System_Memory",
"Win32_UI_Shell",
"Win32_UI_WindowsAndMessaging",
] }