authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-10-03 14:24:26-07:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-10-03 15:13:32-07:00
log2fbbd55d139b80699e548bc1014aeef2c714bdbc
tree36b0c33303b98c20d0de3b30b7525b656e6999be
parent755934ca6dd1bd690b5bbcceb676443e14479133
signature Signed by SSH key SHA256:52mNGHRsVFBDED9IAX5pe+LRWUefqTbxEReunq21QvU

chore: release builds optimise for size the crates that run at a person's pace

System services, the network, file and image formats and shader translation build at opt-level "s"; the page, the renderer, the font stack, wgpu and SQLite stay at 3. Release executables after the debug split: Linux x86_64 48.45 to 47.08 MB (-1.38), macOS aarch64 34.49 to 34.17 MB (-0.32), Windows x86_64 38.62 to 37.28 MB (-1.34, with the previous commit). Assisted-by: claude-opus-5.5

1 files changed, 50 insertions(+), 0 deletions(-)

Cargo.toml+50
...@@ -17,6 +17,56 @@ sctk-adwaita = { path = "vendor/sctk-adwaita" }...@@ -17,6 +17,56 @@ sctk-adwaita = { path = "vendor/sctk-adwaita" }
17lto = "fat"17lto = "fat"
18codegen-units = 118codegen-units = 1
1919
20# Code that runs at a person's pace, not a frame's: system services, the network, file and
21# image formats, shader translation.
22[profile.release.package]
23accesskit.opt-level = "s"
24accesskit_atspi_common.opt-level = "s"
25accesskit_consumer.opt-level = "s"
26accesskit_macos.opt-level = "s"
27accesskit_unix.opt-level = "s"
28accesskit_windows.opt-level = "s"
29accesskit_winit.opt-level = "s"
30async-executor.opt-level = "s"
31async-io.opt-level = "s"
32atspi.opt-level = "s"
33atspi-common.opt-level = "s"
34atspi-proxies.opt-level = "s"
35cab.opt-level = "s"
36gif.opt-level = "s"
37image.opt-level = "s"
38lzxd.opt-level = "s"
39mdns-sd.opt-level = "s"
40naga.opt-level = "s"
41pdf-writer.opt-level = "s"
42png.opt-level = "s"
43quick-xml.opt-level = "s"
44ring.opt-level = "s"
45roxmltree.opt-level = "s"
46rustls.opt-level = "s"
47rustls-webpki.opt-level = "s"
48serde_json.opt-level = "s"
49smb2.opt-level = "s"
50smithay-client-toolkit.opt-level = "s"
51subsetter.opt-level = "s"
52svgtypes.opt-level = "s"
53tiff.opt-level = "s"
54tokio.opt-level = "s"
55toml_edit.opt-level = "s"
56unicode_names2.opt-level = "s"
57ureq.opt-level = "s"
58ureq-proto.opt-level = "s"
59usvg.opt-level = "s"
60wayland-client.opt-level = "s"
61winit.opt-level = "s"
62x11rb.opt-level = "s"
63x11rb-protocol.opt-level = "s"
64zbus.opt-level = "s"
65zbus_names.opt-level = "s"
66zbus_xml.opt-level = "s"
67zune-jpeg.opt-level = "s"
68zvariant.opt-level = "s"
69
20# Shaping, rasterization and GPU submission stay optimised in debug builds, where70# Shaping, rasterization and GPU submission stay optimised in debug builds, where
21# unoptimised dependencies alone drop frames.71# unoptimised dependencies alone drop frames.
22[profile.dev.package."*"]72[profile.dev.package."*"]