[workspace] members = [ "apps/oneclient/desktop", "apps/onelauncher/desktop", "packages/core", "packages/entity", "packages/gamemode", "packages/macro", "packages/migration", "packages/serde_json_path_to_error", ] resolver = "2" # virtual workspace resolver so we don't need a root package [workspace.package] authors = [ "Polyfrost", "Polyfrost Contributors" ] documentation = "https://docs.polyfrost.org/onelauncher" edition = "2024" homepage = "https://polyfrost.org/projects/onelauncher" license = "GPL-3.0-only" readme = "README.md" repository = "https://github.com/Polyfrost/OneLauncher" version = "1.0.0-alpha.4" [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" } serde_json_path_to_error = { path = "./packages/serde_json_path_to_error" } # core interpulse = { version = "=1.2.2", features = [ "specta" ] } # tauri tauri = { version = "=2.5.1", features = [ "rustls-tls", "tracing", "specta", "uuid", "protocol-asset", ] } tauri-build = { version = "=2.2.0" } tauri-plugin-clipboard-manager = { version = "=2.2.2" } tauri-plugin-deep-link = { version = "=2.2.1" } tauri-plugin-dialog = { version = "=2.2.1" } tauri-plugin-fs = { version = "=2.2.1" } tauri-plugin-os = { version = "=2.2.1" } tauri-plugin-single-instance = { version = "=2.2.3" } tauri-plugin-updater = { version = "=2.7.1" } tauri-plugin-window-state = { version = "=2.2.2" } tauri-plugin-opener = { version = "=2.3.0" } # code gen strum = { version = "=0.27.1", features = [ "derive" ] } specta = { version = "=2.0.0-rc.22", features = [ "chrono", "uuid", "serde", "serde_json", "function", "derive", "tokio", ] } specta-typescript = { version = "=0.0.9" } taurpc = { version = "=0.5.0" } # logging tracing = { version = "0.1" } tracing-appender = { version = "0.2" } tracing-error = { version = "0.2" } tracing-subscriber = { version = "0.3", features = [ "chrono", "env-filter" ] } # serialization & text base64 = { version = "=0.22.1" } byteorder = { version = "=1.5.0" } chrono = { version = "0.4", features = [ "serde" ] } nom = { version = "=8.0.0" } rand = { version = "0.8" } regex = { version = "1.11" } serde = { version = "1.0", features = [ "derive" ] } serde_json = { version = "=1.0" } serde_with = { version = "=3.12.0", features = [ "chrono_0_4", "json", "macros" ] } serde_repr = { version = "=0.1.20" } toml = { version = "0.8" } url = { version = "2.5" } uuid = { version = "1.16", features = [ "serde", "v4" ] } # network reqwest = { version = "0.12", default-features = false, features = [ "json", "stream", "multipart", "blocking", "rustls-tls", "charset", "http2", "macos-system-configuration", "deflate", "gzip", "brotli", ] } webbrowser = { version = "=1.0.4" } # io async-compression = { version = "=0.4.23", features = [ "flate2", "tokio" ] } async_zip = { version = "=0.0.17", features = [ "full" ] } bytes = { version = "=1.10.1" } dirs = { version = "=6.0.0" } dunce = { version = "=1.0.5" } flate2 = { version = "=1.1.1" } sanitize-filename = { version = "=0.6.0" } async-tempfile = { version = "=0.7.0" } tokio = { version = "1", features = [ "full" ] } tokio-stream = { version = "0.1", features = [ "fs" ] } tokio-util = { version = "0.7", features = [ "compat" ] } governor = { version = "0.10.4" } encoding_rs = { version = "0.8.35" } # crypto digest = { version = "0.10" } md-5 = { version = "0.10" } murmur2 = { version = "=0.1.0" } sha1 = { version = "0.10" } sha2 = { version = "0.10" } p256 = { version = "0.13", features = [ "ecdsa" ] } # db sea-orm = { version = "1.1", features = [ "sqlx-sqlite", "runtime-tokio-rustls", "macros", "with-chrono", "with-json", "with-uuid", "sqlite-use-returning-for-3_35", ] } sea-orm-migration = { version = "1.1", features = [ "sqlx-sqlite", "runtime-tokio-rustls", "with-chrono", "with-json", "with-uuid", ] } # utils anyhow = { version = "1" } async-trait = { version = "=0.1.88" } async-stream = { version = "=0.3.6" } cc = { version = "1" } discord-rich-presence = { version = "=0.2.5" } futures = { version = "0.3" } futures-lite = { version = "2.6" } indicatif = { version = "0.17" } libc = { version = "0.2" } merge = { version = "=0.2.0" } sysinfo = { version = "=0.34.2", features = [ "serde" ] } thiserror = { version = "2" } whoami = { version = "=1.6.0" } opener = { version = "=0.8.2" } shadow-rs = { version = "1.4.0", default-features = false } # macro paste = { version = "1" } quote = { version = "1" } syn = { version = "2" } proc-macro2 = { version = "1" } [patch.crates-io] # tauri-specta = { git = "https://github.com/specta-rs/tauri-specta", rev = "6fe9532a44b8b683b4dacd178b0120ee585bea23" } specta = { git = "https://github.com/specta-rs/specta", rev = "5758221bc9a11d6e827851273fd665662e90ceef" } specta-typescript = { git = "https://github.com/specta-rs/specta", rev = "5758221bc9a11d6e827851273fd665662e90ceef" } [workspace.lints.rust] unexpected_cfgs = { level = "warn", check-cfg = [ 'cfg(feature, values("used_linker"))' ] } [workspace.lints.clippy] all = { level = "warn", priority = -1 } cast_lossless = "warn" cast_precision_loss = "allow" complexity = { level = "warn", priority = -1 } correctness = { level = "warn", priority = -1 } dbg_macro = "warn" deprecated_cfg_attr = "warn" future_not_send = "allow" missing_errors_doc = "allow" missing_panics_doc = "allow" module_name_repetitions = "allow" needless_return = "allow" nursery = { level = "warn", priority = -1 } pedantic = { level = "warn", priority = -1 } perf = { level = "warn", priority = -1 } separated_literal_suffix = "warn" significant_drop_tightening = "allow" # tmp struct_field_names = "allow" style = { level = "warn", priority = -1 } suspicious = { level = "warn", priority = -1 } unnecessary_cast = "warn" [profile.dev] # add debug symbols/logic and optimize for reduced build time (parallel) codegen-units = 256 # make parallel incremental builds faster debug = true # add debug info incremental = true # enable incremental compilation lto = false # disable link time optimizations, reduce compile time opt-level = 0 # reduce optimizations panic = "unwind" # add unwind panic logic because some deps require it rpath = false # disable rpath split-debuginfo = "unpacked" # unpack debug info strip = "none" # don't remove debug symbols # add debug symbols/logic and optimize for reduced build time (parallel) [profile.dev-debug] codegen-units = 256 # make parallel incremental builds faster debug = "full" # add full debug info incremental = true # enable incremental compilation inherits = "dev" # extend the dev profile lto = "off" # disable link time optimizations, reduce compile time opt-level = 0 # reduce optimizations split-debuginfo = "none" # don't split debug info strip = "none" # don't remove debug symbols # 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."*"] incremental = false # disable incremental compilation opt-level = 3 # optimize build # set the default for dependencies, except workspace members. [profile.dev-debug.package."*"] debug = "full" # add full debug info incremental = false # disable incremental compilation inherits = "dev" # extend the dev profile opt-level = 3 # optimize build # optimize for speed and reduce size for release [profile.release] codegen-units = 1 # compile crate one after another for better optimization lto = true # enable link time optimization opt-level = "s" # optimize binary panic = "abort" # strip panic cleanup logic strip = true