OneLauncher-Cracked/Cargo.toml
LynithDev c31f1086c7 feat: BrowserPackage version list (3/4 done)
chore: Make ErrorBoundary only work during prod
2024-09-01 17:05:03 +02:00

253 lines
9.9 KiB
TOML

[workspace]
resolver = "2" # virtual workspace resolver so we don't need a root package
members = [
"apps/testing", # onelauncher_test -- test the core crate in a cli setting
"apps/desktop", # onelauncher_gui -- the rust code for our tauri app
"packages/core", # onelauncher -- the rust core for onelauncher
"packages/macros", # onelauncher_macros -- utility procedural macros for onelauncher
"packages/gamemode", # onelauncher_gamemode -- rust wrapper for feral gamemode
"packages/prisma-cli", # onelauncher_prisma_cli -- rust wrapper for prisma cli
"packages/prisma" # onelauncher_prisma -- rust client for prisma
]
[workspace.package] # sets default [package] settings for workspace members
license = "GPL-3.0-only"
edition = "2021" # latest rust edition
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" # bump this manually for now
[workspace.dependencies]
# # ============= WORKSPACE ============= # #
# 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" }
onelauncher_gamemode = { path = "./packages/gamemode" }
onelauncher_prisma = { path = "./packages/prisma" }
onelauncher_prisma_cli = { path = "./packages/prisma-cli" }
# # ============= TAURI ============= # #
# tauri uses latest crates.io rc channel
tauri = { version = "=2.0.0-rc.3", features = [
"rustls-tls",
"tracing",
"specta",
"uuid",
"protocol-asset"
] }
# tauri-build is the codegen utility for our tauri buildscript.
tauri-build = { version = "=2.0.0-rc.7" }
# tauri-plugin-shell adds a bridge for opening urls and paths in the frontend.
tauri-plugin-shell = { version = "=2.0.0-rc.1" }
# tauri-plugin-window-state saves the window position and size to be restored.
tauri-plugin-window-state = { version = "=2.0.0-rc.1" }
# 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.1" }
# tauri-plugin-updater allows for us to use it's functionality for in-app updates.
tauri-plugin-updater = { version = "=2.0.0-rc.1" }
# tauri-plugin-dialog adds a bridge for opening file manager and message dialogs.
tauri-plugin-dialog = { version = "=2.0.0-rc.1" }
# tauri-plugin-deep-link adds a way to handle custom uri schemes (onelauncher://)
tauri-plugin-deep-link = { version = "=2.0.0-rc.1" }
# # ============= CORE ============= # #
# 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.20", features = [
"chrono",
"uuid",
"serde",
"serde_json",
"function",
"derive",
"time"
] }
# tauri-specta is the tauri adapter for specta.
tauri-specta = { version = "=2.0.0-rc.17", features = [ "javascript", "typescript", "derive" ] }
# specta-typescript is the typescript adapter for specta.
specta-typescript = { version = "=0.0.7" }
# rspc-specta2 is the specta v2 (rc) adapter for rspc.
rspc-tauri2 = { version = "=0.0.1" }
# core utilities for minecraft and mod management with pulseflow apis
interpulse = { version = "1.1.0", features = [ "specta" ] }
# # ============= SECURITY ============= # #
thiserror = { version = "1.0" }
anyhow = { version = "1.0" }
tracing = { version = "0.1" }
tracing-subscriber = { version = "0.3", features = [ "chrono", "env-filter" ] }
tracing-error = { version = "0.2" }
tracing-appender = { version = "0.2" }
iota_stronghold = { version = "2.1" }
zeroize = { version = "1.8", features = [ "zeroize_derive" ] }
# # ============= SERIALIZATION ============= # #
serde = { version = "1.0", features = [ "derive" ] }
serde_json = { version = "1.0" }
serde_ini = { version = "0.2" }
regex = { version = "1.10" }
url = { version = "2.5.2" }
strum = { version = "0.23", 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.8", features = [ "serde", "v4" ] }
toml = { version = "0.8" }
nom = { version = "7" }
# # ============= 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.27", features = [ "tokio-runtime", "tokio-rustls-webpki-roots" ] }
webbrowser = { version = "1.0" }
# # ============= SYSTEM ============= # #
tokio = { version = "1.38", features = [ "full" ] }
tokio-stream = { version = "0.1.15", features = [ "fs" ] }
notify = { version = "6.1", default-features = false }
notify-debouncer-mini = { version = "0.4", default-features = false }
tempfile = { version = "3.10" }
dunce = { version = "1.0.4" }
zip = { version = "2.1.6" }
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" }
sha1_smol = { version = "1.0", features = [ "std" ] }
sha2 = { version = "0.10" }
bytes = { version = "1.6" }
# # ============= UTILITY ============= # #
once_cell = { version = "1.19" }
quote = { version = "1.0" }
syn = { version = "2.0", features = [ "full" ] }
discord-rich-presence = { version = "0.2" }
winreg = { version = "0.52" }
paste = { version = "1.0" }
dashmap = { version = "6.0", features = [ "serde" ] }
lazy_static = { version = "1.4" }
indicatif = { version = "0.17" }
futures = { version = "0.3" }
async-recursion = { version = "1.1" }
sysinfo = { version = "0.31", features = [ "serde" ] }
sys-info = { version = "0.9" }
whoami = { version = "1.5" }
cocoa = { version = "0.26" }
objc = { version = "0.2" }
cc = { version = "1.1" }
libc = { version = "0.2" }
# https://github.com/tauri-apps/tauri/blob/tauri-v2.0.0-rc.0/core/tauri/Cargo.toml#L86
webkit2gtk = { version = "=2.0.1", features = [ "v2_38" ] }
[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-generator]
git = "https://github.com/brendonovich/prisma-client-rust"
rev = "4f9ef9d38ca732162accff72b2eb684d2f120bab"
features = [
"migrations",
"specta",
"sqlite",
"sqlite-create-many",
"rspc"
]
default-features = false
[patch.crates-io]
# 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 # 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