[workspace] resolver = "2" # virtual workspace resolver so we don't need a root package members = [ "packages/core", "packages/entity", "packages/gamemode", "packages/macro", "packages/migration", ] [workspace.package] license = "GPL-3.0-only" edition = "2024" repository = "https://github.com/Polyfrost/OneLauncher" documentation = "https://docs.polyfrost.org/onelauncher" readme = "README.md" homepage = "https://polyfrost.org/projects/onelauncher" authors = [ "Polyfrost", "Polyfrost Contributors" ] version = "0.2.0-alpha.2" [workspace.dependencies] # workspace onelauncher_core = { path = "./packages/core" } onelauncher_entity = { path = "./packages/entity" } onelauncher_gamemode = { path = "./packages/gamemode" } onelauncher_macro = { path = "./packages/macro" } onelauncher_migration = { path = "./packages/migration" } # tauri tauri = { version = "2.0", features = [ "rustls-tls", "tracing", "specta", "uuid", "protocol-asset" ] } tauri-build = { version = "2.0" } tauri-plugin-shell = { version = "2.0" } tauri-plugin-window-state = { version = "2.0" } tauri-plugin-single-instance = { version = "2.0" } tauri-plugin-clipboard-manager = { version = "2.0" } tauri-plugin-updater = { version = "2.0" } tauri-plugin-dialog = { version = "2.0" } tauri-plugin-deep-link = { version = "2.0" } # core interpulse = { version = "=1.2.2", features = [ "specta" ] } # code gen specta = { version = "2.0.0-rc.20", features = [ "chrono", "uuid", "serde", "serde_json", "function", "derive", "time" ] } tauri-specta = { version = "2.0.0-rc.20", features = [ "javascript", "typescript", "derive" ] } specta-typescript = { version = "=0.0.7" } # security iota_stronghold = { version = "2.1" } zeroize = { version = "1.8", features = [ "zeroize_derive" ] } # logging tracing = { version = "0.1" } tracing-subscriber = { version = "0.3", features = [ "chrono", "env-filter" ] } tracing-error = { version = "0.2" } tracing-appender = { version = "0.2" } # serialization & text serde = { version = "1.0", features = [ "derive" ] } serde_json = { version = "1.0" } serde_ini = { version = "0.2" } serde_repr = { version = "0.1" } serde_with = { version = "=3.12.0", features = [ "chrono_0_4", "json", "macros" ] } regex = { version = "1.10" } url = { version = "2.5.2" } strum = { version = "0.26", features = [ "derive" ] } chrono = { version = "0.4", features = [ "serde" ] } rand = { version = "0.8.5" } byteorder = { version = "1.5.0" } base64 = { version = "0.22" } p256 = { version = "0.13.2", features = [ "ecdsa" ] } uuid = { version = "1.10", features = [ "serde", "v4" ] } toml = { version = "0.8" } nom = { version = "7.1" } # network reqwest = { version = "0.12", default-features = false, features = [ "json", "stream", "multipart", "blocking", "rustls-tls", "charset", "http2", "macos-system-configuration", "deflate", "gzip", "brotli" ] } async-tungstenite = { version = "0.28", features = [ "tokio-runtime", "tokio-rustls-webpki-roots" ] } webbrowser = { version = "1.0" } # io tokio = { version = "1.40", features = [ "full" ] } tokio-stream = { version = "0.1.16", features = [ "fs" ] } notify = { version = "6.1", default-features = false } notify-debouncer-mini = { version = "0.4", default-features = false } tempfile = { version = "3.19" } dunce = { version = "1.0.5" } zip = { version = "2.2.0" } dirs = { version = "5.0" } async_zip = { version = "0.0.17", features = [ "full" ] } async-compression = { version = "0.4.12", features = [ "flate2", "tokio" ] } flate2 = { version = "1.0" } bytes = { version = "1.7" } # crypto sha1_smol = { version = "1.0", features = [ "std" ] } sha2 = { version = "0.10" } murmur2 = { version = "0.1.0" } md5 = { version = "0.7.0" } # db sea-orm = { version = "1.1", features = [ "sqlx-sqlite", "runtime-tokio-rustls", "macros", "with-chrono", "with-json", "with-uuid" ] } sea-orm-migration = { version = "1.1", features = [ "sqlx-sqlite", "runtime-tokio-rustls" ] } # utils thiserror = { version = "1.0" } anyhow = { version = "1.0" } sysinfo = { version = "0.31", features = [ "serde" ] } discord-rich-presence = { version = "0.2" } indicatif = { version = "0.17" } futures = { version = "0.3" } async-trait = { version = "0.1" } whoami = { version = "1.5" } cc = { version = "1.1" } libc = { version = "0.2" } # macro syn = { version = "2" } quote = { version = "1" } [workspace.lints.clippy] all = { level = "warn", priority = -1 } pedantic = { level = "warn", priority = -1 } correctness = { level = "warn", priority = -1 } perf = { level = "warn", priority = -1 } style = { level = "warn", priority = -1 } suspicious = { level = "warn", priority = -1 } complexity = { level = "warn", priority = -1 } nursery = { level = "warn", priority = -1 } unnecessary_cast = "warn" cast_lossless = "warn" dbg_macro = "warn" deprecated_cfg_attr = "warn" separated_literal_suffix = "warn" missing_errors_doc = "allow" future_not_send = "allow" module_name_repetitions = "allow" struct_field_names = "allow" cast_precision_loss = "allow" missing_panics_doc = "allow" significant_drop_tightening = "allow" # tmp needless_return = "allow" [workspace.lints.rust] unused_qualifications = "warn" rust_2018_idioms = { level = "warn", priority = -1 } trivial_casts = "warn" trivial_numeric_casts = "warn" unused_allocation = "warn" unused_import_braces = "warn" deprecated = "warn" deprecated_in_future = "forbid" unused_must_use = "deny" [profile.dev] # add debug symbols/logic and optimize for reduced build time (parallel) debug = true # add debug info opt-level = 0 # reduce optimizations strip = "none" # don't remove debug symbols incremental = true # enable incremental compilation split-debuginfo = "unpacked" # unpack debug info lto = false # disable link time optimizations, reduce compile time codegen-units = 256 # make parallel incremental builds faster rpath = false # disable rpath panic = "unwind" # add unwind panic logic because some deps require it # add debug symbols/logic and optimize for reduced build time (parallel) [profile.dev-debug] inherits = "dev" # extend the dev profile split-debuginfo = "none" # don't split debug info opt-level = 0 # reduce optimizations debug = "full" # add full debug info strip = "none" # don't remove debug symbols lto = "off" # disable link time optimizations, reduce compile time codegen-units = 256 # make parallel incremental builds faster incremental = true # enable incremental compilation # set the settings for build scripts and proc-macros. [profile.dev.build-override] opt-level = 3 # optimize build # set the default for dependencies, except workspace members. [profile.dev.package."*"] opt-level = 3 # optimize build incremental = false # disable incremental compilation # set the default for dependencies, except workspace members. [profile.dev-debug.package."*"] inherits = "dev" # extend the dev profile opt-level = 3 # optimize build debug = "full" # add full debug info incremental = false # disable incremental compilation # optimize for speed and reduce size for release [profile.release] panic = "abort" # strip panic cleanup logic codegen-units = 1 # compile crate one after another for better optimization lto = true # enable link time optimization opt-level = "s" # optimize binary strip = true # remove debug symbols