[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" }