Skip to content

Commit 7030c06

Browse files
committed
compress embedded corpus
~25% reduction in binary size
1 parent 18ae02a commit 7030c06

File tree

4 files changed

+16
-1
lines changed

4 files changed

+16
-1
lines changed

Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ anyhow = "1.0.71"
1010
clap = "4.3.3"
1111
glob = "0.3.1"
1212
log = "0.4.19"
13+
lz4_flex = { version = "0.11.1", default-features = false }
1314
postcard = { version = "1.0.4", features = ["use-std"], default-features = false }
1415
serde = { version = "1.0.164", features = ["derive"] }
1516
simple_logger = "4.1.0"
@@ -23,5 +24,6 @@ rand = "0.8.5"
2324
anyhow = "1.0.71"
2425
glob = "0.3.1"
2526
log = "0.4.19"
27+
lz4_flex = { version = "0.11.1", default-features = false }
2628
postcard = { version = "1.0.4", features = ["use-std"], default-features = false }
2729
serde = { version = "1.0.164", features = ["derive"] }

build.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ fn main() {
1111
// serialize to bytes
1212
let bytes = postcard::to_stdvec(&default).unwrap();
1313

14+
// compress
15+
let bytes = lz4_flex::compress(&bytes);
16+
1417
// output path to target build folder
1518
let mut outfile = std::path::PathBuf::from(std::env::var("OUT_DIR").unwrap());
1619
outfile.push("default.pc");

src/main.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,11 @@ fn main() -> Result<()> {
227227
// serialized bytes embedded from build.rs
228228
let bytes = include_bytes!(concat!(env!("OUT_DIR"), "/default.pc"));
229229

230+
// decompress
231+
let bytes = lz4_flex::decompress(bytes, 39364573).unwrap();
232+
230233
// deserialize
231-
postcard::from_bytes(bytes).unwrap()
234+
postcard::from_bytes(&bytes).unwrap()
232235
};
233236

234237
let corpus_stats = match args.get_one::<&str>("corpus") {

0 commit comments

Comments
 (0)