Files
proxycast/src-tauri/Cargo.toml
T
2026-04-02 20:36:21 +08:00

358 lines
8.4 KiB
TOML

[workspace]
members = ["crates/*"]
resolver = "2"
[workspace.package]
version = "1.1.0"
edition = "2021"
authors = ["coso"]
repository = "https://github.com/aiclientproxy/lime"
homepage = "https://github.com/aiclientproxy/lime"
[workspace.dependencies]
# 项目内 crate 依赖
lime-core = { path = "crates/core" }
lime-config = { path = "crates/config" }
lime-infra = { path = "crates/infra" }
lime-providers = { path = "crates/providers" }
lime-services = { path = "crates/services" }
lime-terminal = { path = "crates/terminal" }
lime-credential = { path = "crates/credential" }
lime-websocket = { path = "crates/websocket" }
lime-processor = { path = "crates/processor" }
lime-server-utils = { path = "crates/server-utils" }
lime-server = { path = "crates/server" }
lime-skills = { path = "crates/skills" }
lime-mcp = { path = "crates/mcp" }
lime-agent = { path = "crates/agent" }
lime-scheduler = { path = "crates/scheduler" }
lime-memory = { path = "crates/memory" }
lime-embedding = { path = "crates/embedding" }
lime-gateway = { path = "crates/gateway" }
lime-browser-runtime = { path = "crates/browser-runtime" }
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 = { version = "0.3", features = ["env-filter"] }
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"
jsonwebtoken = "9.3.1"
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 = { version = "0.9", features = ["vendored-openssl"] }
# 系统交互
mouse_position = "0.1.4"
window-vibrancy = "0.7.1"
if-addrs = "0.13"
enigo = "0.3"
# Aster Agent Framework
# 默认固定到远程 Git tag,避免 CI/CD 与其他开发环境依赖本地绝对路径。
# 如需联调本地 aster-rust,请运行:
# npm run setup:local-aster -- /path/to/aster-rust
# 脚本会在仓库根 .cargo/config.toml 写入本地 patch 覆盖;该文件已被 .gitignore 忽略。
aster = { package = "aster-core", git = "https://github.com/astercloud/aster-rust", tag = "v0.25.0" }
aster-models = { git = "https://github.com/astercloud/aster-rust", tag = "v0.25.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"
tauri-plugin-updater = "2"
# 测试
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 = "lime"
version = "1.1.0"
description = "AI API Proxy Desktop App"
authors = ["you"]
edition = "2021"
repository = "https://github.com/aiclientproxy/lime"
homepage = "https://github.com/aiclientproxy/lime"
[lib]
name = "lime_lib"
crate-type = ["lib", "cdylib", "staticlib"]
[build-dependencies]
tauri-build.workspace = true
[dependencies]
# 项目内 crate
lime-core.workspace = true
lime-config.workspace = true
lime-infra.workspace = true
lime-providers.workspace = true
lime-services.workspace = true
lime-terminal.workspace = true
lime-credential.workspace = true
lime-websocket.workspace = true
lime-processor.workspace = true
lime-server-utils.workspace = true
lime-server.workspace = true
lime-skills.workspace = true
lime-mcp.workspace = true
lime-gateway.workspace = true
lime-agent.workspace = true
lime-scheduler.workspace = true
lime-memory.workspace = true
lime-embedding.workspace = true
lime-browser-runtime.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
tauri-plugin-updater.workspace = true
tauri-plugin-deep-link.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
jsonwebtoken.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
# 系统交互
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
[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 = [] # 预留特性:系统通知功能