content: [package]
  name = "uniclipboard"
  version = "0.1.0"
  description = "一个剪切板同步工具"
  authors = ["mkdir700@gmail.com"]
  edition = "2021"
  
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
  
  [lib]
  # The `_lib` suffix may seem redundant but it is necessary
  # to make the lib name unique and wouldn't conflict with the bin name.
  # This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519
  name = "uniclipboard_lib"
  crate-type = ["staticlib", "cdylib", "rlib"]
  
  [build-dependencies]
  tauri-build = { version = "2", features = [] }
  
  [dependencies]
  # ===== Tauri 相关依赖 =====
  tauri = { version = "2", features = [] }  # Tauri 框架核心库
  tauri-plugin-opener = "2"  # 用于打开文件或URL的Tauri插件
  tauri-plugin-devtools = "2.0.0"  # Tauri开发工具插件
  
  # ===== 序列化/数据处理 =====
  serde = { version = "1", features = ["derive"] }  # 序列化和反序列化框架
  serde_json = "1"  # JSON数据处理
  toml = "0.8.19"  # TOML配置文件解析
  
  # ===== 异步/网络相关 =====
  tokio = { version = "1.28", features = ["full"] }  # 异步运行时
  tokio-util = { version = "0.7", features = ["codec"] }  # Tokio实用工具
  tokio-tungstenite = "0.19"  # WebSocket客户端和服务器实现
  futures-util = "0.3"  # Future相关工具
  futures = "0.3.30"  # 异步编程工具
  async-trait = "0.1.82"  # 异步特性支持
  reqwest_dav = "0.1.13"  # WebDAV客户端
  warp = "0.3.7"  # Web服务器框架
  local-ip-address = "0.6.4"  # 获取本地IP地址
  
  # ===== 加密/安全 =====
  sha2 = "0.10.8"  # SHA-2哈希函数
  base64 = "0.22.1"  # Base64编码/解码
  aes-gcm = "0.10.3"  # AES-GCM加密算法
  twox-hash = "1.6.3"
  
  # ===== 文件/系统操作 =====
  bytes = "1.7.1"  # 字节处理工具
  dirs = "6.0.0"  # 跨平台目录路径
  
  # ===== 数据库 =====
  diesel = { version = "2.2.0", features = [
    "sqlite",
    "returning_clauses_for_sqlite_3_35",
    "r2d2",
  ] }  # ORM数据库框架
  # build libsqlite3 as part of the build process
  # uncomment this line if you run into setup issues
  libsqlite3-sys = { version = "0.30", features = ["bundled"] }  # SQLite系统库绑定
  # libsqlite3-sys = { version = "0.30" }
  diesel_migrations = { version = "2.2.0", features = ["sqlite"] }  # Diesel迁移工具
  
  # ===== 图像处理 =====
  image = "0.25.2"  # 图像处理库
  png = "0.17.14"  # PNG图像处理
  
  # ===== 剪贴板 =====
  clipboard-rs = "0.2.1"  # 剪贴板操作库
  
  # ===== 日志/错误处理 =====
  anyhow = "1.0.98"  # 错误处理
  log = "0.4.27"  # 日志库
  env_logger = { version = "0.10", features = ["color"] }
  
  # ===== 工具/辅助功能 =====
  regex = "1.9.5"  # 正则表达式
  rand = "0.9.1"  # 随机数生成
  chrono = "0.4.38"  # 日期和时间处理
  once_cell = "1.19.0"  # 延迟初始化
  lazy_static = "1.4.0"  # 延迟静态变量
  dotenvy = "0.15"  # 环境变量管理
  tauri-plugin-stronghold = "2"
  argon2 = "0.5.3"
  iota_stronghold = "2.1.0"
  
  [profile.release]
  panic = "abort"   # Strip expensive panic clean-up logic
  codegen-units = 1 # Compile crates one after another so the compiler can optimize better
  lto = true        # Enables link to optimizations
  opt-level = "z"   # Optimize for binary size
  strip = true      # Remove debug symbols
  
  [features]
  integration_tests = []
  network_tests = []
  hardware_tests = []
  testing = []
  
  [target.'cfg(target_os = "macos")'.dependencies]
  cocoa = "0.26"
  
  [target.'cfg(windows)'.dependencies]
  clipboard-win = { version = "5.4.0" }
  winapi = { version = "0.3.9", features = [
    "winuser",
    "basetsd",
    "minwindef",
    "winbase",
  ] }
  
  [target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
  tauri-plugin-autostart = "2"
  tauri-plugin-single-instance = "2"
  
  [dependencies.uuid]
  version = "1.10.0"
  features = [
    "v4",                # Lets you generate random UUIDs
    "fast-rng",          # Use a faster (but still sufficiently random) RNG
    "macro-diagnostics", # Enable better diagnostics for compile-time UUIDs
  ]
  
  [dev-dependencies]
  mockito = "1.7.0"
  tempfile = "3.2"
  dotenv = "0.15.0"
  mockall = "0.11"
  tokio = { version = "1", features = ["full"] }
  serial_test = "3.1.1"
  enigo = "0.2.1"
  arboard = "3.4.1"
  ctor = "0.2.8"
  