Files
proxycast/src-tauri/Cargo.toml
T
2026-03-12 00:34:23 +08:00

355 lines
8.5 KiB
TOML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[workspace]
members = ["crates/*"]
resolver = "2"
[workspace.package]
version = "0.84.0"
edition = "2021"
authors = ["coso"]
repository = "https://github.com/aiclientproxy/proxycast"
homepage = "https://github.com/aiclientproxy/proxycast"
[workspace.dependencies]
# 项目内 crate 依赖
proxycast-core = { path = "crates/core" }
proxycast-config = { path = "crates/config" }
proxycast-infra = { path = "crates/infra" }
proxycast-providers = { path = "crates/providers" }
proxycast-services = { path = "crates/services" }
proxycast-terminal = { path = "crates/terminal" }
proxycast-credential = { path = "crates/credential" }
proxycast-websocket = { path = "crates/websocket" }
proxycast-processor = { path = "crates/processor" }
proxycast-server-utils = { path = "crates/server-utils" }
proxycast-server = { path = "crates/server" }
proxycast-skills = { path = "crates/skills" }
proxycast-mcp = { path = "crates/mcp" }
proxycast-agent = { path = "crates/agent" }
proxycast-scheduler = { path = "crates/scheduler" }
proxycast-memory = { path = "crates/memory" }
proxycast-embedding = { path = "crates/embedding" }
proxycast-gateway = { path = "crates/gateway" }
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"
sentry = "0.43"
# 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", "timeout"] }
# 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"] }
chrono-tz = "0.10"
uuid = { version = "1", features = ["v4"] }
# Cron 调度
cron = "0.15"
# 工具库
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.17.0"
# aster = { package = "aster-core", path = "../../../astercloud/aster-rust/crates/aster" }
aster = { package = "aster-core", git = "https://github.com/astercloud/aster-rust", tag = "v0.17.0" }
# 本地开发: aster-models = { path = "../../../astercloud/aster-rust/crates/aster-models" }
aster-models = { git = "https://github.com/astercloud/aster-rust", tag = "v0.17.0" }
# MCP (Model Context Protocol)
rmcp = { version = "0.12.0", features = ["client", "transport-io", "transport-child-process"] }
# Tauri
tauri = { version = "2.10.3", 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.84.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-config.workspace = true
proxycast-infra.workspace = true
proxycast-providers.workspace = true
proxycast-services.workspace = true
proxycast-terminal.workspace = true
proxycast-credential.workspace = true
proxycast-websocket.workspace = true
proxycast-processor.workspace = true
proxycast-server-utils.workspace = true
proxycast-server.workspace = true
proxycast-skills.workspace = true
proxycast-mcp.workspace = true
proxycast-gateway.workspace = true
proxycast-agent.workspace = true
proxycast-scheduler.workspace = true
proxycast-memory.workspace = true
proxycast-embedding.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
sentry.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
chrono-tz.workspace = true
uuid.workspace = true
# Cron 调度
cron.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
tempfile.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
# MCP (Model Context Protocol)
rmcp.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"]
# 本地 Whisper 语音识别(编译很慢,CI 默认不启用)
local-whisper = ["voice-core/local-whisper"]
notification = [] # 预留特性:系统通知功能