quick_search/Cargo.toml

32 lines
1.5 KiB
TOML

[workspace]
resolver = "2"
members = [
"crates/quicksearch-core",
"crates/quicksearch-gui",
]
# The `vendor/` crates are deliberately NOT members: they are third-party code which we patched
exclude = ["vendor/pdf-extract", "vendor/notify"]
[patch.crates-io]
pdf-extract = { path = "vendor/pdf-extract" } # Bounds a crafted PDF's recursion depth and total work; drops colour handling and adobe-cmap-parser; decodes CID fonts whose Encoding CMap is not Identity
notify = { path = "vendor/notify" } # The Windows backend reports a change buffer that overflowed as a rescan, rather than losing the burst silently
[workspace.package]
version = "1.2.1"
edition = "2021"
license = "GPL-3.0-or-later"
authors = ["Jeremy <jeremy@karsttech.com>"]
repository = "https://code.karsttech.com/jeremy/quick_search.git"
# Fat LTO + cgu=1: -14% stripped size (24.3 MB vs 28.2 MB), search within noise
# (read as "3-4% faster or even"), +127 s on a clean CI build. Measure CLEAN —
# an incremental rebuild is nearly all link and made LTO look ~20x worse than
# it is. `lto = "thin"` alone is worth nothing (0.1%); cgu=1 alone is worth
# 2.3 MB. Deliberately unset: `strip` (packaging/CI strip the staged copy,
# keeping target/release symbolised); `panic = "abort"` (extract/pdf.rs needs
# catch_unwind for malformed PDFs, and it forces a full second dependency
# rebuild under `cargo test --release`); non-PIE (ASLR — this parses untrusted
# PDFs). The vendored OpenSSL's ~1.3 MB is unreachable by any profile knob.
[profile.release]
lto = "fat"
codegen-units = 1