2026-04-21 23:00:47 -04:00
[ workspace ]
resolver = "2"
members = [
"crates/quicksearch-core" ,
"crates/quicksearch-gui" ,
]
2026-08-21 02:05:23 -04:00
# The `vendor/` crates are deliberately NOT members: they are third-party code which we patched
2026-10-11 20:32:00 -04:00
exclude = [ "vendor/pdf-extract" , "vendor/notify" ]
2026-08-20 00:13:10 -04:00
[ patch . crates-io ]
2026-10-11 20:32:00 -04:00
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
2026-04-21 23:00:47 -04:00
2026-08-17 22:30:43 -04:00
[ workspace . package ]
2026-10-11 20:32:00 -04:00
version = "1.2.1"
2026-08-17 22:30:43 -04:00
edition = "2021"
license = "GPL-3.0-or-later"
authors = [ "Jeremy <jeremy@karsttech.com>" ]
repository = "https://code.karsttech.com/jeremy/quick_search.git"
2026-08-23 00:33:53 -04:00
# 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.
2026-08-17 22:30:43 -04:00
[ profile . release ]
lto = "fat"
codegen-units = 1