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-08-20 18:58:25 -04:00
|
|
|
exclude = ["vendor/pdf-extract", "vendor/rtf-parser"]
|
2026-08-20 00:13:10 -04:00
|
|
|
|
|
|
|
|
[patch.crates-io]
|
2026-08-21 02:05:23 -04:00
|
|
|
pdf-extract = { path = "vendor/pdf-extract" } # Patched unbounded reads which could blow up on malformed files
|
|
|
|
|
rtf-parser = { path = "vendor/rtf-parser" } # Patched a parsing error which occurs on UTF-16 characters
|
2026-04-21 23:00:47 -04:00
|
|
|
|
2026-08-17 22:30:43 -04:00
|
|
|
[workspace.package]
|
2026-08-25 01:04:36 -04:00
|
|
|
version = "1.1.6"
|
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
|