[package]
name = "sync-core"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = ["cdylib", "lib"]

[dependencies]
# FRB
flutter_rust_bridge = "=2.12.0"

# 异步运行时
tokio = { workspace = true }

# HTTP
reqwest = { version = "0.12", features = ["json", "stream", "rustls-tls"], default-features = false }

# 序列化
serde = { workspace = true }
serde_json = { workspace = true }

# 数据库
rusqlite = { version = "0.32", features = ["bundled"] }
r2d2 = "0.8"
r2d2_sqlite = "0.25"

# 文件系统
walkdir = "2"
sha2 = "0.10"
hex = "0.4"
notify-debouncer-full = "0.7.0"

# 错误处理
thiserror = { workspace = true }
anyhow = { workspace = true }

# 日志
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# 并发
dashmap = "6"

# 工具
uuid = { workspace = true }
chrono = { workspace = true }
parking_lot = { workspace = true }
futures = "0.3"
futures-util = "0.3"
bytes = "1"
filetime = "0.2"
async-trait = "0.1"
url = "2"
urlencoding = "2"
mime_guess = "2"
once_cell = "1"
tokio-util = { version = "0.7", features = ["compat"] }

# SSE
# (已移除 eventsource 0.5 依赖，使用内联 SSE 解析器，避免旧版 tokio/net2 警告)

# 平台依赖 (feature-gated)
[target.'cfg(windows)'.dependencies]
sync-windows = { path = "../sync-windows", optional = true }
windows = { version = "0.58", optional = true }

[target.'cfg(target_os = "linux")'.dependencies]
sync-linux = { path = "../sync-linux", optional = true }

[target.'cfg(target_os = "android")'.dependencies]
sync-android = { path = "../sync-android", optional = true }
jni = { version = "0.21", optional = true }

[features]
default = []
windows-cfapi = ["sync-windows", "windows"]
linux-notify = ["sync-linux"]
android-media = ["sync-android", "jni"]
event_sink_enabled = []

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(frb_expand)'] }
