[package]
name = "drop-app"
version = "0.4.0"
description = "The client application for the open-source, self-hosted game distribution platform Drop"
authors = ["Drop OSS"]
edition = "2024"

[workspace]
resolver = "3"
members = [
  "client",
  "cloud_saves",
  "database",
  "download_manager",
  "games",
  "process",
  "remote",
  "utils",
]

[lib]
crate-type = ["cdylib", "rlib", "staticlib"]
# 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 = "drop_app_lib"
rustflags = ["-C", "target-feature=+aes,+sse2"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
anyhow = "1.0.101"
async-trait = "0.1.89"
atomic-instant-full = "0.1.0"
bitcode = "0.6.6"
bytes = "1.10.1"
cacache = "13.1.0"
chrono = "0.4.38"
client = { path = "./client", version = "0.1.0" } # client
database = { path = "./database" } # database
deranged = "=0.4.0"
dirs = "6.0.0"
download_manager = { path = "./download_manager", version = "0.1.0" } # download manager
filetime = "0.2.25"
futures-core = "0.3.31"
futures-lite = "2.6.0"
games = { path = "./games", version = "0.1.0" } # games
gethostname = "1.0.1"
hex = "0.4.3"
http = "1.1.0"
http-serde = "2.1.1"
humansize = "2.1.3"
known-folders = "1.2.0"
log = "0.4.22"
md5 = "0.7.0"
native_model = { path = "../../libraries/native_model", features = [
  "rmp_serde_1_3",
] }
page_size = "0.6.0"
parking_lot = "0.12.3"
process = { path = "./process" } # process
rand = "0.9.1"
rayon = "1.10.0"
regex = "1.11.1"
remote = { path = "./remote", version = "0.1.0" } # remote
reqwest = { version = "0.12.28", default-features = false, features = [
  "blocking",
  "http2",
  "json",
  "native-tls-alpn",
  "rustls-tls",
  "rustls-tls-native-roots",
  "stream",
] }
reqwest-middleware = "0.4.0"
reqwest-middleware-cache = "0.1.1"
reqwest-websocket = "0.5.0"
schemars = "0.8.22"
serde_json = "1"
serde_with = "3.12.0"
sha1 = "0.10.6"
shared_child = "1.0.1"
slice-deque = "0.3.0"
sysinfo = "0.36.1"
tar = "0.4.46"
tauri-plugin-autostart = "*"
tauri-plugin-deep-link = "*"
tauri-plugin-dialog = "*"
tauri-plugin-opener = "*"
tauri-plugin-os = "*"
tauri-plugin-shell = "*"
tempfile = "3.19.1"
throttle_my_fn = "0.2.6"
tokio-util = { version = "0.7.16", features = ["io"] }
umu-wrapper-lib = "0.1.0"
url = "2.5.2"
urlencoding = "2.1.3"
utils = { path = "./utils" } # utils
walkdir = "2.5.0"
webbrowser = "1.0.2"
whoami = "1.6.0"
wry = { version = "*", features = [] }
zstd = "0.13.3"

[dependencies.log4rs]
version = "1.3.0"
features = ["console_appender", "file_appender"]

[dependencies.rustbreak]
version = "2"
features = ["other_errors"] # You can also use "yaml_enc" or "bin_enc"

[dependencies.rustix]
version = "0.38.37"
features = ["fs"]

[dependencies.serde]
version = "1"
features = ["derive", "rc"]

[dependencies.tauri]
version = "2.9.5"
features = ["protocol-asset", "tray-icon", "unstable"]

[dependencies.tokio]
version = "1.40.0"
features = ["rt", "signal", "tokio-macros"]

[dependencies.uuid]
version = "1.10.0"
features = ["fast-rng", "macro-diagnostics", "v4"]

[build-dependencies]
tauri-build = { version = "*", features = [] }

[target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\"))".dependencies]
tauri-plugin-single-instance = { version = "2.0.0", features = ["deep-link"] }

[target."cfg(target_os = \"linux\")".dependencies]
libloading = "0.7"

[profile.release]
lto = true
panic = "abort"
codegen-units = 1

[profile.dev.package."*"]
# Set the default for dependencies in Development mode.
opt-level = 3

[profile.dev]
# Turn on a small amount of optimisation in Development mode.
opt-level = 1
