[workspace] exclude = ["crates/ava1/fuzz"] members = [ "crates/ava1", "crates/ava1-gen", "crates/ava1-chaos", "crates/ava1-ctest", "crates/ps5upload-core", "crates/ps5upload-lab", "crates/ps5upload-ava1", "crates/ps5upload-engine", "crates/ps5upload-pkg", "crates/ps5upload-fpkg", "crates/ps5upload-tests", "crates/ps5-dump-forge-ufs2", "crates/ps5-dump-forge-pfs", ] resolver = "2" [workspace.package] edition = "2021" license = "GPL-3.0-or-later" version = "7.1.5" [workspace.dependencies] anyhow = "1.0" # "multipart" is for the backport library import (fakelibs_api.rs): users pick # library files and upload them as one set. Same crate, just the extractor. axum = { version = "0.8", features = ["multipart"] } # `rayon`: an image build hashes every file twice (writing, reading back) on all cores. blake3 = { version = "1", features = ["rayon"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" thiserror = "2.0" tokio = { version = "1", features = ["rt-multi-thread", "macros", "signal", "fs", "io-util"] } tokio-stream = { version = "0.1", features = ["sync"] } tower-http = { version = "0.7", features = ["cors"] } uuid = { version = "1", features = ["v4"] } # Speed up debug builds: thinner debug info on macOS, more parallelism. [profile.dev] split-debuginfo = "unpacked" # Line tables are enough for backtraces; full variable info made 76+ test binaries slow to link. debug = "line-tables-only" # Dependencies carry no debug info (smaller, faster links) but stay unoptimized: optimized # crypto let a whole test upload sit in Linux's loopback buffers before the AVA1 cancel and # space tests could act on it. The CPU-heavy image builders run optimized (the fpkg scale # tests took 526 s in CI unoptimized). [profile.dev.package."*"] debug = false [profile.dev.package.ps5upload-fpkg] opt-level = 2 [profile.dev.package.ps5-dump-forge-ufs2] opt-level = 2 [profile.dev.package.ps5-dump-forge-pfs] opt-level = 2 # Same for the release engine binary — not a shipped bundle, so trade a # little size for faster link times. [profile.release] debug = false # Vendored `unrar` with a one-line bounds fix in the volume-change callback. # Upstream 0.5.8 reads ~8 KB out of a much smaller buffer on every volume # transition, which aborts debug builds on any multi-part .rar and is a # latent out-of-bounds read in release. 0.5.8 is the latest release, so # there is nothing upstream to take. See third_party/unrar/README.md and # docs/unrar-upstream-bug.md. [patch.crates-io] unrar = { path = "../third_party/unrar" } # 32-bit fix: archive sizes stay u64 (third_party/sevenz-rust2/README.md, #434). sevenz-rust2 = { path = "../third_party/sevenz-rust2" }