OneLauncher-Cracked/Cargo.toml
2024-08-03 17:24:30 +02:00

261 lines
7.9 KiB
TOML

[workspace]
resolver = "2"
members = [
"apps/testing",
"apps/desktop",
"packages/core",
"packages/macros"
]
[workspace.package]
license = "GPL-3.0-only"
edition = "2021"
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 = "1.0.0-alpha.1"
[workspace.dependencies]
# best practice to define all workspace crates in the root
# even if they are not use, with no features enabled.
onelauncher = { path = "./packages/core" }
onelauncher_macros = { path = "./packages/macros" }
onelauncher_gui = { path = "./apps/desktop" }
onelauncher_test = { path = "./apps/testing" }
# tauri uses latest crates.io beta channel
# (temporarily can use v2 and main branches if necessary)
tauri = { version = "=2.0.0-rc.0", features = [
"rustls-tls",
"tracing",
"specta",
"uuid",
"protocol-asset"
] }
tauri-build = { version = "=2.0.0-rc.0" }
# tauri-plugin-shell adds a bridge for opening urls and paths in the frontend.
tauri-plugin-shell = { version = "=2.0.0-rc.0" }
# tauri-plugin-window-state saves the window position and size to be restored.
tauri-plugin-window-state = { version = "=2.0.0-rc.0" }
# tauri-plugin-single-instance ensures that only one instance of the app is running.
tauri-plugin-single-instance = { version = "=2.0.0-rc.0" }
# tauri-plugin-clipboard-manager adds a bridge for reading/writing to the clipboard.
tauri-plugin-clipboard-manager = { version = "=2.0.0-rc.0" }
# tauri-plugin-updater allows for us to use it's functionality for in-app updates.
tauri-plugin-updater = { version = "=2.0.0-rc.0" }
# tauri-plugin-dialog adds a bridge for opening file manager and message dialogs.
tauri-plugin-dialog = { version = "=2.0.0-rc.0" }
# rspc is used as a faster and more intuitive replacement for tauri-specta
# commands/apis that don't depend on tauri. rather than using the tauri
# event and invoke apis for handling api calling, it creates a router which
# we can easily use with tanstack solid query apis.
# this means we don't have to redefine all our core apis as tauri commands.
# features: "specta2" is for using the latest v2 rc of specta.
# TODO: the api migration is blocked until rspc updates to a newer version of tauri v2.
rspc = { version = "=0.2.0", features = [
"specta2",
"tracing"
] }
# specta is used as a peer dependency for tauri-specta and rspc.
# it generates rust code into other languages, in our case, typescript.
# v2 is the latest/only version, and it is updated as a release candidate
# on crates.io almost after every commit, so a git dep isn't necessary.
# features: "derive" and "function" are core apis of specta we rely on.
# the remaining features implements the specta::Type trait for their
# respective dependencies of the same name. if we add a new dependency
# and run into specta errors, adding the dependency as a feature will usually solve this.
specta = { version = "=2.0.0-rc.19", features = [
"chrono",
"uuid",
"serde",
"serde_json",
"function",
"derive",
"time"
] }
# tauri-specta
tauri-specta = { version = "=2.0.0-rc.14", features = [
"javascript",
"typescript",
"derive"
] }
# specta-typescript is the typescript adapter for specta.
specta-typescript = { version = "=0.0.6" }
# rspc-specta2 is the specta v2 (rc) adapter for rspc.
rspc-tauri2 = { version = "=0.0.1" }
# all other dependencies are updated to latest crates.io release channel
interpulse = { version = "1", features = [ "specta" ] }
tracing = { version = "0.1" }
tracing-subscriber = { version = "0.3", features = [
"chrono",
"env-filter"
] }
tracing-error = { version = "0.2" }
tracing-appender = { version = "0.2" }
sentry = { version = "0.34", default-features = false, features = [
"rustls",
"reqwest",
"backtrace",
"panic",
"anyhow",
"debug-images"
] }
notify = { version = "6.1", default-features = false }
notify-debouncer-mini = { version = "0.4", default-features = false }
uuid = { version = "1.8", features = [
"serde",
"v4"
] }
tokio = { version = "1.38", features = [ "full" ] }
async-tungstenite = { version = "0.26", features = [
"tokio-runtime",
"tokio-rustls-native-certs"
] }
strum = { version = "0.23", features = [ "derive" ] }
once_cell = { version = "1.19" }
tokio-stream = { version = "0.1.15", features = [ "fs" ] }
serde = { version = "1.0", 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" ] }
reqwest = { version = "0.12", default-features = false, features = [
"json",
"stream",
"multipart",
"blocking",
"rustls-tls-native-roots",
"deflate",
"gzip",
"brotli"
] }
iota_stronghold = { version = "2.1" }
zeroize = { version = "1.8", features = [ "zeroize_derive" ] }
quote = { version = "1.0" }
syn = { version = "2.0", features = [ "full" ] }
tempfile = { version = "3.10" }
dunce = { version = "1.0.4" }
serde_json = { version = "1.0" }
serde_ini = { version = "0.2" }
zip = { version = "0.6" }
thiserror = { version = "1.0" }
anyhow = { version = "1.0" }
dirs = { version = "5.0" }
discord-rich-presence = { version = "0.2" }
winreg = { version = "0.52" }
paste = { version = "1.0" }
dashmap = { version = "6.0", features = [ "serde" ] }
sha1_smol = { version = "1.0", features = [ "std" ] }
sha2 = { version = "0.10" }
bytes = { version = "1.6" }
lazy_static = { version = "1.4" }
indicatif = { version = "0.17" }
futures = { version = "0.3" }
async-recursion = { version = "1.1" }
async_zip = { version = "0.0.17", features = [ "full" ] }
async-compression = { version = "0.4.12", features = [
"flate2",
"tokio"
] }
flate2 = { version = "1.0" }
regex = { version = "1.10" }
sysinfo = { version = "0.31", features = [ "serde" ] }
sys-info = { version = "0.9" }
whoami = { version = "1.5" }
cocoa = { version = "0.25" }
objc = { version = "0.2" }
webbrowser = { version = "1.0" }
url = { version = "2.5.2" }
[workspace.dependencies.prisma-client-rust]
git = "https://github.com/brendonovich/prisma-client-rust"
rev = "4f9ef9d38ca732162accff72b2eb684d2f120bab"
features = [
"migrations",
"specta",
"sqlite",
"sqlite-create-many",
"rspc"
]
default-features = false
[workspace.dependencies.prisma-client-rust-cli]
git = "https://github.com/brendonovich/prisma-client-rust"
rev = "4f9ef9d38ca732162accff72b2eb684d2f120bab"
features = [
"migrations",
"specta",
"sqlite",
"sqlite-create-many",
"rspc"
]
default-features = false
[patch.crates-io] # we hack to the high heavens
# rspc = { git = "https://github.com/oscartbeaumont/rspc", rev = "9f26d6400affdb501837cb023678268ad72feb9b" }
# rspc-tauri2 = { git = "https://github.com/specta-rs/tauri2", rev = "6b9419566e2a826fb2a62538c7647f4524ab0fea" }
[profile.dev]
# add debug symbols/logic and optimize for reduced build time (parallel)
debug = true
opt-level = 0
strip = "none"
incremental = true
split-debuginfo = "unpacked"
lto = false
codegen-units = 256
rpath = false
panic = "unwind"
# add debug symbols/logic and optimize for reduced build time (parallel)
[profile.dev-debug]
inherits = "dev"
split-debuginfo = "none"
opt-level = 0
debug = "full"
strip = "none"
lto = "off"
codegen-units = 256
incremental = true
# set the settings for build scripts and proc-macros.
[profile.dev.build-override]
opt-level = 3
# set the default for dependencies, except workspace members.
[profile.dev.package."*"]
opt-level = 3
incremental = false
# set the default for dependencies, except workspace members.
[profile.dev-debug.package."*"]
inherits = "dev"
opt-level = 3
debug = "full"
incremental = false
# 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
opt-level = "s" # optimize binary
strip = true # remove debug symbols