Files
nyaterm/Cargo.toml
T
2026-11-04 23:19:42 +08:00

210 lines
9.6 KiB
TOML

[workspace]
# The application resolves its helpers beside its executable. Include the Windows
# ActiveX host in development builds; release packaging filters it by platform.
default-members = [
"crates/nyaterm-app",
"crates/nyaterm-mcp",
"crates/nyaterm-rdp-helper",
"crates/nyaterm-vnc-helper",
]
members = [
"crates/nyaterm-app",
"crates/nyaterm-core",
"crates/nyaterm-desktop",
"crates/nyaterm-mcp",
"crates/nyaterm-mcp-protocol",
"crates/nyaterm-otp",
"crates/nyaterm-plugin-api",
"crates/nyaterm-plugin-host",
"crates/nyaterm-rdp-helper",
"crates/nyaterm-remote-desktop",
"crates/nyaterm-windows-rdp",
"crates/nyaterm-store",
"crates/nyaterm-sync",
"crates/nyaterm-terminal",
"crates/nyaterm-terminal-gpui",
"crates/nyaterm-transport",
"crates/nyaterm-ui",
"crates/nyaterm-vnc-helper",
]
resolver = "3"
# `temp/` is untracked and holds local reference checkouts, including the
# sources that used to be vendored here, now under `temp/vendor/`. None of it is
# part of the build: every one of those dependencies comes from a pinned fork
# revision below. Editing anything under `temp/` has no effect on what is
# compiled. The exclude entry only stops cargo from claiming those manifests
# belong to this workspace, so they can still be built on their own.
exclude = ["temp", "examples/plugins/guests"]
[workspace.package]
version = "2.0.2"
edition = "2024"
authors = ["Kang"]
license = "Apache-2.0"
repository = "https://github.com/nyakang/nyaterm"
[workspace.dependencies]
automerge = "=0.12.0"
httpdate = "1.0"
http = "1"
opendal = { version = "=0.59.5", default-features = false, features = ["executors-tokio", "services-webdav", "services-s3", "services-gdrive", "services-onedrive", "services-aliyun-drive", "layers-timeout", "layers-retry"] }
aes-gcm = "0.11"
aes = { version = "0.8", features = ["zeroize"] }
cbc = "0.1"
pbkdf2 = "0.12"
sha3 = "0.10"
argon2 = { version = "0.5.3", features = ["zeroize"] }
alacritty_terminal = "0.26.1-dev"
anyhow = "1"
async-http-proxy = { version = "1.2.5", features = ["runtime-tokio", "basic-auth"] }
base64 = "0.22"
bytes = "1.7"
crypto_secretbox = "0.1"
digest = "0.11.0-rc.5"
dirs = "6"
encoding_rs = "0.8"
futures = "0.3"
genai = { version = "=0.7.3", default-features = false, features = ["rustls-tls", "system-proxy"] }
reqwest = { version = "0.13.5", default-features = false, features = ["json", "query", "stream", "socks", "system-proxy"] }
same-file = "1"
tempfile = "3"
glob = "0.3.4"
gpui = { version = "=0.2.2", git = "https://github.com/nyakang/zed", rev = "a755e55acb90229c687e64e6a84877fb70d21619" }
gpui-base = { git = "https://github.com/nyakang/gpui-kit", rev = "9143df9774d0190162053defc9b1faac3f8ab907" }
gpui-kit = { git = "https://github.com/nyakang/gpui-kit", rev = "9143df9774d0190162053defc9b1faac3f8ab907" }
gpui_platform = { git = "https://github.com/nyakang/zed", rev = "a755e55acb90229c687e64e6a84877fb70d21619" }
# Pure-Rust, `#![forbid(unsafe)]` PDF rasterizer (MIT OR Apache-2.0). Pinned
# exactly: the crate is pre-1.0 and explicitly experimental, so a caret range
# could pull in a breaking 0.8 without review. `embed-fonts` bundles the 14
# permissively-licensed standard-font substitutes so previews of PDFs that rely
# on non-embedded base fonts still render without custom font loading.
hayro = { version = "=0.7.1", features = ["embed-fonts"] }
hex = "0.4"
hmac = "0.13"
ironrdp-input = "0.9.0"
jsonc-parser = { version = "0.34", features = ["serde"] }
keyring = { version = "3.6", features = [
"apple-native",
"windows-native",
"sync-secret-service",
"crypto-rust",
] }
log = "0.4.11"
md5 = "0.8"
nyaterm-core = { path = "crates/nyaterm-core" }
nyaterm-mcp-protocol = { path = "crates/nyaterm-mcp-protocol" }
nyaterm-desktop = { path = "crates/nyaterm-desktop" }
nyaterm-otp = { path = "crates/nyaterm-otp" }
nyaterm-plugin-api = { path = "crates/nyaterm-plugin-api" }
nyaterm-plugin-host = { path = "crates/nyaterm-plugin-host" }
nyaterm-remote-desktop = { path = "crates/nyaterm-remote-desktop" }
nyaterm-windows-rdp = { path = "crates/nyaterm-windows-rdp" }
nyaterm-store = { path = "crates/nyaterm-store" }
nyaterm-sync = { path = "crates/nyaterm-sync" }
nyaterm-terminal = { path = "crates/nyaterm-terminal" }
nyaterm-terminal-gpui = { path = "crates/nyaterm-terminal-gpui" }
nyaterm-transport = { path = "crates/nyaterm-transport" }
nyaterm-ui = { path = "crates/nyaterm-ui" }
percent-encoding = "=2.3.2"
portable-pty = { git = "https://github.com/nyakang/portable-pty", rev = "1ececcf9a10437f2fe04d0756735cd0847219a26" }
quick-xml = "0.40"
rand = { version = "0.10", features = ["thread_rng"] }
redb = "4.1.0"
regex = "1.11.1"
rmcp = "=3.1.4"
rustls = { version = "0.23.43", default-features = false, features = ["aws_lc_rs", "std"] }
russh = { git = "https://github.com/nyakang/russh", rev = "831c8ddd2898f472fb88e80a93cbf9beb40a0fe2", features = ["des", "dsa"] }
russh-sftp = { git = "https://github.com/nyakang/russh-sftp", rev = "b638b4896de6a0efd699e4c3833873221b3b3f01" }
rusty-leveldb = "4.0"
rust-embed = { version = "8.11", features = ["include-exclude", "debug-embed"] }
rust-i18n = "4.2"
schemars = "=1.2.2"
serialport = { version = "4", default-features = false }
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1", features = ["raw_value"] }
semver = { version = "1", features = ["serde"] }
sha1 = { version = "0.11", features = ["oid"] }
sha2 = { version = "0.11", features = ["oid"] }
signature = "3.0.0-rc.10"
ssh-key = "=0.7.0-rc.11"
thiserror = "2"
time = { version = "0.3.47", features = ["formatting", "local-offset", "macros"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time", "fs", "process", "io-util"] }
tokio-util = "=0.7.19"
tokio-socks = "0.5.2"
tracing = "0.1"
tracing-appender = "0.2.4"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
# Test-only. Feature set must mirror gpui's own usvg dependency (default-features
# = false) so asset tests cannot pass under capabilities the app does not build.
usvg = { version = "0.46", default-features = false }
url = "=2.5.8"
unicode-normalization = "0.1"
unicode-segmentation = "1.12"
uuid = { version = "1", features = ["v4", "serde"] }
vnc = { package = "vnc-rs", git = "https://github.com/nyakang/vnc-rs", rev = "7f9f0e5b57eec212f0926c54cdc7ae579dfe322a" }
vte = "0.14"
zeroize = "1"
zmodem2 = { git = "https://github.com/nyakang/zmodem2", rev = "87a80216179f29d90e0b8c06ee5b4a6a0132c763" }
zed_reqwest = { package = "zed-reqwest", version = "0.12.15-zed", default-features = false, features = [
"blocking",
"json",
"rustls-tls-native-roots",
"socks",
] }
zip = { version = "8.2.0", default-features = false, features = ["deflate"] }
toml = "0.9"
wasmtime = { version = "=39.0.1", default-features = false, features = ["std", "runtime", "cranelift", "component-model"] }
wasmparser = "=0.240.0"
wit-bindgen = { version = "=0.49.0", default-features = false, features = ["macros", "realloc", "std"] }
[profile.dev]
debug = "line-tables-only"
[profile.dev.package]
alacritty_terminal = { opt-level = 1, debug = false }
gpui = { opt-level = 1, debug = false }
gpui_platform = { opt-level = 1, debug = false }
regex = { opt-level = 1, debug = false }
regex-automata = { opt-level = 1, debug = false }
regex-syntax = { opt-level = 1, debug = false }
rustybuzz = { opt-level = 1, debug = false }
smol = { opt-level = 1, debug = false }
sum_tree = { opt-level = 1, debug = false }
swash = { opt-level = 1, debug = false }
taffy = { opt-level = 1, debug = false }
ttf-parser = { opt-level = 1, debug = false }
[profile.dev.package."*"]
debug = false
[profile.debugging]
inherits = "dev"
debug = "full"
[patch.crates-io]
alacritty_terminal = { git = "https://github.com/nyakang/alacritty", rev = "86ff089983b93700c065ae3ae57273addf561fe7" }
ironrdp-client = { git = "https://github.com/nyakang/IronRDP", rev = "a15d5faa54192ad0eb2a1f9f4c9d8e1f06295970" }
ironrdp-connector = { git = "https://github.com/nyakang/IronRDP", rev = "a15d5faa54192ad0eb2a1f9f4c9d8e1f06295970" }
sspi = { git = "https://github.com/nyakang/sspi-rs", rev = "582bd37e355d710a0888faded5f4f6da4667c3c8" }
# The published ironrdp-client and ironrdp-connector packages declare their
# sibling crates as registry dependencies, but in the IronRDP repository those
# are path dependencies, so patching the two above to git pulls the siblings
# from git as well. Without these entries the graph holds both a registry and a
# git copy of each and the SvcClientProcessor impls stop unifying. The versions
# are identical on both sides. `ironrdp-tls` is here for the same reason:
# `nyaterm-rdp-helper` names its certificate-validation types directly, because
# ironrdp-client does not re-export them.
ironrdp-cliprdr = { git = "https://github.com/nyakang/IronRDP", rev = "a15d5faa54192ad0eb2a1f9f4c9d8e1f06295970" }
ironrdp-core = { git = "https://github.com/nyakang/IronRDP", rev = "a15d5faa54192ad0eb2a1f9f4c9d8e1f06295970" }
ironrdp-error = { git = "https://github.com/nyakang/IronRDP", rev = "a15d5faa54192ad0eb2a1f9f4c9d8e1f06295970" }
ironrdp-input = { git = "https://github.com/nyakang/IronRDP", rev = "a15d5faa54192ad0eb2a1f9f4c9d8e1f06295970" }
ironrdp-pdu = { git = "https://github.com/nyakang/IronRDP", rev = "a15d5faa54192ad0eb2a1f9f4c9d8e1f06295970" }
ironrdp-svc = { git = "https://github.com/nyakang/IronRDP", rev = "a15d5faa54192ad0eb2a1f9f4c9d8e1f06295970" }
ironrdp-tls = { git = "https://github.com/nyakang/IronRDP", rev = "a15d5faa54192ad0eb2a1f9f4c9d8e1f06295970" }
# gpui-kit takes zed-reqwest from git while this workspace uses the
# published crate; without this both end up in the graph.
[patch."https://github.com/zed-industries/reqwest.git"]
zed-reqwest = { version = "0.12.15-zed" }