[workspace] members = ["crates/*"] resolver = "2" [workspace.package] version = "0.54.0" edition = "2021" authors = ["you"] repository = "https://github.com/aiclientproxy/proxycast" homepage = "https://github.com/aiclientproxy/proxycast" [workspace.dependencies] # 项目内 crate 依赖 proxycast-core = { path = "crates/core" } proxycast-infra = { path = "crates/infra" } voice-core = { path = "crates/voice-core" } # 序列化 serde = { version = "1", features = ["derive"] } serde_json = "1" serde_yaml = "0.9" serde_urlencoded = "0.7" # 异步运行时 tokio = { version = "1", features = ["full"] } tokio-util = "0.7" futures = "0.3" async-stream = "0.3" async-trait = "0.1" # 错误处理 anyhow = "1" thiserror = "1" # 日志 tracing = "0.1" tracing-subscriber = "0.3" # HTTP 服务器 axum = { version = "0.7", features = ["ws"] } axum-server = { version = "0.7", features = ["tls-rustls"] } tower = "0.5" tower-http = { version = "0.6", features = ["limit", "cors"] } # HTTP 客户端 reqwest = { version = "0.12", features = ["json", "stream", "gzip", "brotli", "deflate"] } # 数据库 rusqlite = { version = "0.31", features = ["bundled", "backup"] } # 时间和 UUID chrono = { version = "0.4", features = ["serde"] } uuid = { version = "1", features = ["v4"] } # 工具库 dirs = "5" regex = "1" md5 = "0.7" urlencoding = "2" subtle = "2.5" flate2 = "1" tar = "0.4" fs2 = "0.4" indexmap = { version = "2", features = ["serde"] } zip = "0.6" dashmap = "5" notify = { version = "6", default-features = false, features = ["macos_fsevent"] } parking_lot = "0.12" tiktoken-rs = "0.6" base64 = "0.22" bytes = "1" rand = "0.8" sha2 = "0.10" open = "5" url = "2" once_cell = "1" arboard = "3" glob = "0.3.3" hex = "0.4.3" scopeguard = "1" sysinfo = "0.32" whoami = "1" # 音频 cpal = "0.15" # TLS rustls-pemfile = "2" # 终端 portable-pty = "0.8" # SSH ssh2 = "0.9" openssl = { version = "0.10", features = ["vendored"] } # 系统交互 mouse_position = "0.1.4" window-vibrancy = "0.7.1" if-addrs = "0.13" enigo = "0.3" # Aster Agent Framework # 开发时使用本地 aster-rust,CI/CD 使用远程 GitHub 仓库 # 本地开发: path = "../../../astercloud/aster-rust/crates/aster" (相对 src-tauri/) # CI/CD: git = "https://github.com/astercloud/aster-rust", tag = "v0.7.1" # aster = { version = "0.5.1", path = "../../../astercloud/aster-rust/crates/aster" } aster = { git = "https://github.com/astercloud/aster-rust", tag = "v0.7.1" } # Tauri tauri = { version = "2.5", features = ["tray-icon", "image-png", "unstable", "macos-private-api"] } tauri-build = { version = "2", features = [] } tauri-plugin-shell = "2.3" tauri-plugin-autostart = "2.3" tauri-plugin-dialog = "2.5.0" tauri-plugin-single-instance = "2.3" tauri-plugin-global-shortcut = "2.3" # 测试 proptest = "1" tempfile = "3" # Windows 平台依赖 [workspace.dependencies.windows] version = "0.56" features = [ "Win32_Foundation", "Win32_System_Registry", "Win32_System_Threading", "Win32_System_ProcessStatus", "Win32_UI_Shell", "Win32_UI_WindowsAndMessaging", "Win32_System_LibraryLoader", "Win32_System_Memory", "Win32_System_Diagnostics_ToolHelp", "Win32_Security", ] [workspace.dependencies.winapi] version = "0.3" features = [ "winuser", "winreg", "processthreadsapi", "handleapi", "shellapi", "psapi", "tlhelp32", ] [workspace.dependencies.winreg] version = "0.52" # macOS 平台依赖 [workspace.dependencies.cocoa] version = "0.26" [workspace.dependencies.objc] version = "0.2" [workspace.dependencies.tauri-plugin-deep-link] version = "2.4" [package] name = "proxycast" version = "0.54.0" description = "AI API Proxy Desktop App" authors = ["you"] edition = "2021" repository = "https://github.com/aiclientproxy/proxycast" homepage = "https://github.com/aiclientproxy/proxycast" [lib] name = "proxycast_lib" crate-type = ["lib", "cdylib", "staticlib"] [build-dependencies] tauri-build.workspace = true [dependencies] # 项目内 crate proxycast-core.workspace = true proxycast-infra.workspace = true voice-core.workspace = true # Tauri tauri.workspace = true tauri-plugin-shell.workspace = true tauri-plugin-autostart.workspace = true tauri-plugin-dialog.workspace = true tauri-plugin-single-instance.workspace = true tauri-plugin-global-shortcut.workspace = true # 序列化 serde.workspace = true serde_json.workspace = true serde_yaml.workspace = true serde_urlencoded.workspace = true # 异步运行时 tokio.workspace = true tokio-util.workspace = true futures.workspace = true async-stream.workspace = true async-trait.workspace = true # 错误处理 anyhow.workspace = true thiserror.workspace = true # 日志 tracing.workspace = true tracing-subscriber.workspace = true # HTTP 服务器 axum.workspace = true axum-server.workspace = true tower.workspace = true tower-http.workspace = true rustls-pemfile.workspace = true # HTTP 客户端 reqwest.workspace = true # 数据库 rusqlite.workspace = true # 时间和 UUID chrono.workspace = true uuid.workspace = true # 工具库 dirs.workspace = true regex.workspace = true md5.workspace = true urlencoding.workspace = true subtle.workspace = true flate2.workspace = true tar.workspace = true fs2.workspace = true indexmap.workspace = true zip.workspace = true dashmap.workspace = true notify.workspace = true parking_lot.workspace = true tiktoken-rs.workspace = true base64.workspace = true bytes.workspace = true rand.workspace = true sha2.workspace = true open.workspace = true url.workspace = true once_cell.workspace = true arboard.workspace = true glob.workspace = true hex.workspace = true scopeguard.workspace = true sysinfo.workspace = true whoami.workspace = true # 终端 portable-pty.workspace = true # SSH ssh2.workspace = true openssl.workspace = true # 系统交互 mouse_position.workspace = true window-vibrancy.workspace = true if-addrs.workspace = true enigo.workspace = true # 音频 cpal.workspace = true # Aster Agent Framework aster.workspace = true # Windows specific dependencies for browser interceptor and machine ID management [target.'cfg(windows)'.dependencies] windows.workspace = true winapi.workspace = true winreg.workspace = true # macOS specific dependencies for browser interceptor [target.'cfg(target_os = "macos")'.dependencies] cocoa.workspace = true objc.workspace = true tauri-plugin-deep-link.workspace = true [dev-dependencies] proptest.workspace = true tempfile.workspace = true [features] default = ["custom-protocol"] custom-protocol = ["tauri/custom-protocol"] notification = [] # 预留特性:系统通知功能