From 037344c68f807dfa80e6b4386aec7ef9797c64a4 Mon Sep 17 00:00:00 2001 From: Kristof Date: Fri, 13 Mar 2026 06:33:20 +0100 Subject: [PATCH 1/4] update version of dependencies and nuget --- Cargo.lock | 337 ++++++++++++++--------------------- Cargo.toml | 2 +- container/Cargo.toml | 2 +- container/src/lib.rs | 40 ++++- fuzz/Cargo.toml | 2 - package/Preflate.Rust.nuspec | 2 +- preflate/src/lib.rs | 12 +- util/src/main.rs | 2 +- 8 files changed, 181 insertions(+), 218 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 900124c..720b8cf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16,18 +16,18 @@ checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] [[package]] name = "anstream" -version = "0.6.20" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" +checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", "anstyle-parse", @@ -40,9 +40,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "anstyle-parse" @@ -55,18 +55,18 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ "windows-sys", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", @@ -93,9 +93,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "bitcode" -version = "0.6.7" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "648bd963d2e5d465377acecfb4b827f9f553b6bc97a8f61715779e9ed9e52b74" +checksum = "0a6ed1b54d8dc333e7be604d00fa9262f4635485ffea923647b6521a5fff045d" dependencies = [ "arrayvec", "bitcode_derive", @@ -106,26 +106,26 @@ dependencies = [ [[package]] name = "bitcode_derive" -version = "0.6.7" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffebfc2d28a12b262c303cb3860ee77b91bd83b1f20f0bd2a9693008e2f55a9e" +checksum = "238b90427dfad9da4a9abd60f3ec1cdee6b80454bde49ed37f1781dd8e9dc7f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "bitflags" -version = "2.9.4" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "bytemuck" -version = "1.23.2" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" [[package]] name = "byteorder" @@ -151,9 +151,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.38" +version = "1.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80f41ae168f955c12fb8960b057d70d0ca153fb83182b57d86380443527be7e9" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" dependencies = [ "find-msvc-tools", "jobserver", @@ -163,15 +163,15 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "clap" -version = "4.5.47" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eac00902d9d136acd712710d71823fb8ac8004ca445a89e73a41d45aa712931" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" dependencies = [ "clap_builder", "clap_derive", @@ -179,9 +179,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.47" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ad9bbf750e73b5884fb8a211a9424a1906c1e156724260fdae972f31d70e1d6" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" dependencies = [ "anstream", "anstyle", @@ -191,27 +191,27 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.47" +version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "clap_lex" -version = "0.7.5" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" [[package]] name = "cmake" -version = "0.1.54" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" dependencies = [ "cc", ] @@ -263,15 +263,15 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.3" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" [[package]] name = "env_filter" -version = "0.1.3" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f" dependencies = [ "log", "regex", @@ -279,9 +279,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.8" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d" dependencies = [ "anstream", "anstyle", @@ -292,30 +292,30 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.2" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "flate2" -version = "1.1.2" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" dependencies = [ "crc32fast", - "miniz_oxide", + "miniz_oxide 0.8.9", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", "r-efi", - "wasi", + "wasip2", ] [[package]] @@ -335,14 +335,14 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "glam" -version = "0.30.6" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d8e8d9db3feacb0bb4801b77e00c4d550f3e8d3e5303388fdfec3ff8a91f04d" +checksum = "f70749695b063ecbf6b62949ccccde2e733ec3ecbbd71d467dca4e5c6c97cca0" [[package]] name = "glob" @@ -358,9 +358,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "image" -version = "0.25.8" +version = "0.25.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529feb3e6769d234375c4cf1ee2ce713682b8e76538cb13f9fc23e1400a591e7" +checksum = "85ab80394333c02fe689eaf900ab500fbd0c2213da414687ebf995a65d5a6104" dependencies = [ "bytemuck", "byteorder-lite", @@ -370,32 +370,32 @@ dependencies = [ [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "jiff" -version = "0.2.15" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be1f93b8b1eb69c77f24bbb0afdf66f54b632ee39af40ca21c4365a1d7347e49" +checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" dependencies = [ "jiff-static", "log", "portable-atomic", "portable-atomic-util", - "serde", + "serde_core", ] [[package]] name = "jiff-static" -version = "0.2.15" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" +checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -410,9 +410,9 @@ dependencies = [ [[package]] name = "lepton_jpeg" -version = "0.5.3" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "178b5aaa3a8feccb2f29cbe39858ccf40390ce98ba31347feab3dea8efd76a13" +checksum = "540c312fa0f528f4cad6c7dbffb0b29d39f34026e133a4c79d23d95f2863e46e" dependencies = [ "bytemuck", "byteorder", @@ -427,24 +427,24 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.175" +version = "0.2.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" [[package]] name = "libdeflate-sys" -version = "1.24.0" +version = "1.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "805824325366c44599dfeb62850fe3c7d7b3e3d75f9ab46785bc7dba3676815c" +checksum = "72753e0008ea87963d2f0770042d0df7abe51fafbb8dcaf618ac440f2f1fec0a" dependencies = [ "cc", ] [[package]] name = "libfuzzer-sys" -version = "0.4.10" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5037190e1f70cbeef565bd267599242926f724d3b8a9f510fd7e0b540cfa4404" +checksum = "f12a681b7dd8ce12bff52488013ba614b869148d54dd79836ab85aafdd53f08d" dependencies = [ "arbitrary", "cc", @@ -462,9 +462,9 @@ dependencies = [ [[package]] name = "libz-ng-sys" -version = "1.1.22" +version = "1.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7118c2c2a3c7b6edc279a8b19507672b9c4d716f95e671172dfa4e23f9fd824" +checksum = "89b6bd0c289b22f4973012fa91dfed9d5f4b633567bb26f9454fbf437817b499" dependencies = [ "cmake", "libc", @@ -472,9 +472,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.22" +version = "1.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" +checksum = "d52f4c29e2a68ac30c9087e1b772dc9f44a2b66ed44edf2266cf2be9b03dafc1" dependencies = [ "cc", "libc", @@ -484,30 +484,40 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" -version = "2.7.5" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "miniz_oxide" version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "miniz_oxide" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5faa9f23e86bd5768d76def086192ff5f869fb088da12a976ea21e9796b975f6" dependencies = [ "adler2", ] [[package]] name = "moxcms" -version = "0.7.5" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd32fa8935aeadb8a8a6b6b351e40225570a37c43de67690383d87ef170cd08" +checksum = "bb85c154ba489f01b25c0d36ae69a87e4a1c73a72631fc6c0eb6dde34a73e44b" dependencies = [ "num-traits", "pxfm", @@ -524,9 +534,9 @@ dependencies = [ [[package]] name = "once_cell_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "pkg-config" @@ -536,15 +546,15 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "portable-atomic" -version = "1.11.1" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "portable-atomic-util" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" +checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" dependencies = [ "portable-atomic", ] @@ -559,7 +569,7 @@ dependencies = [ "env_logger", "lepton_jpeg", "log", - "miniz_oxide", + "miniz_oxide 0.9.0", "preflate-rs", "webp", "zstd", @@ -594,7 +604,7 @@ dependencies = [ "libdeflate-sys", "libz-ng-sys", "libz-sys", - "miniz_oxide", + "miniz_oxide 0.9.0", "preflate-container", "preflate-rs", ] @@ -621,27 +631,24 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] [[package]] name = "pxfm" -version = "0.1.23" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55f4fedc84ed39cb7a489322318976425e42a147e2be79d8f878e2884f94e84" -dependencies = [ - "num-traits", -] +checksum = "b5a041e753da8b807c9255f28de81879c78c876392ff2469cde94799b2896b9d" [[package]] name = "quote" -version = "1.0.40" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -654,9 +661,9 @@ checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "regex" -version = "1.11.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -666,9 +673,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.10" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -677,9 +684,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "rustversion" @@ -689,40 +696,40 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "safe_arch" -version = "0.7.4" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b02de82ddbe1b636e6170c21be622223aea188ef2e139be0a5b219ec215323" +checksum = "629516c85c29fe757770fa03f2074cf1eac43d44c02a3de9fc2ef7b0e207dfdd" dependencies = [ "bytemuck", ] [[package]] name = "serde" -version = "1.0.225" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6c24dee235d0da097043389623fb913daddf92c76e9f5a1db88607a0bcbd1d" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", ] [[package]] name = "serde_core" -version = "1.0.225" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "659356f9a0cb1e529b24c01e43ad2bdf520ec4ceaf83047b83ddcc2251f96383" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.225" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea936adf78b1f766949a4977b91d2f5595825bd6ec079aa9543ad2685fc4516" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -731,6 +738,12 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "simd-adler32" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" + [[package]] name = "strsim" version = "0.11.1" @@ -750,9 +763,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -775,9 +788,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.19" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "utf8parse" @@ -791,20 +804,11 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -[[package]] -name = "wasi" -version = "0.14.7+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" -dependencies = [ - "wasip2", -] - [[package]] name = "wasip2" -version = "1.0.1+wasi-0.2.4" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ "wit-bindgen", ] @@ -821,9 +825,9 @@ dependencies = [ [[package]] name = "wide" -version = "0.7.33" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce5da8ecb62bcd8ec8b7ea19f69a51275e91299be594ea5cc6ef7819e16cd03" +checksum = "13ca908d26e4786149c48efcf6c0ea09ab0e06d1fe3c17dc1b4b0f1ca4a7e788" dependencies = [ "bytemuck", "safe_arch", @@ -853,89 +857,24 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-link" -version = "0.1.3" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-sys" -version = "0.60.2" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.53.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ "windows-link", - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" [[package]] name = "zstd" diff --git a/Cargo.toml b/Cargo.toml index 8b4cacc..aafbffd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,4 +28,4 @@ preflate-container = { path = "container" } libz-sys = "1.1" libdeflate-sys = "1.19" libz-ng-sys = "1.1.12" -miniz_oxide = "0.8" +miniz_oxide = "0.9" diff --git a/container/Cargo.toml b/container/Cargo.toml index 11826a7..255484e 100644 --- a/container/Cargo.toml +++ b/container/Cargo.toml @@ -26,7 +26,7 @@ lepton_jpeg = "0.5.1" [dev-dependencies] env_logger = "0.11" -miniz_oxide = "0.8" +miniz_oxide = "0.9" adler32 = "1.2.0" [lib] diff --git a/container/src/lib.rs b/container/src/lib.rs index 9b0593e..34fe655 100644 --- a/container/src/lib.rs +++ b/container/src/lib.rs @@ -9,16 +9,15 @@ #![forbid(trivial_casts)] #![forbid(trivial_numeric_casts)] #![forbid(non_ascii_idents)] -#![forbid(unused_extern_crates)] -#![forbid(unused_import_braces)] #![forbid(redundant_lifetimes)] #![forbid(single_use_lifetimes)] -#![forbid(unused_crate_dependencies)] -#![forbid(unused_extern_crates)] -#![forbid(unused_lifetimes)] -#![forbid(unused_macro_rules)] -#![forbid(macro_use_extern_crate)] #![forbid(missing_unsafe_on_extern)] +#![forbid(unused_import_braces)] +#![forbid(unused_lifetimes)] +#![warn(unused_extern_crates)] +#![warn(unused_macro_rules)] +#![warn(unused_crate_dependencies)] +#![warn(macro_use_extern_crate)] mod container_common; mod container_read; @@ -34,6 +33,33 @@ pub use container_write::PreflateContainerProcessor; pub use utils::process_limited_buffer; +/// Convenience wrapper: compresses an entire input stream into the preflate container format. +pub fn preflate_whole_into_container( + config: &PreflateContainerConfig, + input: &mut impl std::io::Read, + output: &mut impl std::io::Write, +) -> preflate_rs::Result<()> { + let mut processor = PreflateContainerProcessor::new(config, 9, false); + let mut buf = Vec::new(); + input.read_to_end(&mut buf).map_err(|e| { + preflate_rs::PreflateError::new(preflate_rs::ExitCode::GeneralFailure, e.to_string()) + })?; + processor.process_buffer(&buf, true, output) +} + +/// Convenience wrapper: recreates the original data from a preflate container stream. +pub fn recreate_whole_from_container( + input: &mut impl std::io::Read, + output: &mut impl std::io::Write, +) -> preflate_rs::Result<()> { + let mut processor = RecreateContainerProcessor::new(128 * 1024 * 1024); + let mut buf = Vec::new(); + input.read_to_end(&mut buf).map_err(|e| { + preflate_rs::PreflateError::new(preflate_rs::ExitCode::GeneralFailure, e.to_string()) + })?; + processor.process_buffer(&buf, true, output) +} + #[cfg(test)] static INIT: std::sync::Once = std::sync::Once::new(); diff --git a/fuzz/Cargo.toml b/fuzz/Cargo.toml index 8abce30..191c5f9 100644 --- a/fuzz/Cargo.toml +++ b/fuzz/Cargo.toml @@ -21,14 +21,12 @@ name = "fuzz_target_1" path = "fuzz_target_1.rs" test = false doc = false -required-features = ["fuzzing"] [[bin]] name = "fuzz_container" path = "fuzz_container.rs" test = false doc = false -required-features = ["fuzzing"] [features] fuzzing = [] \ No newline at end of file diff --git a/package/Preflate.Rust.nuspec b/package/Preflate.Rust.nuspec index edc6180..1178ec6 100644 --- a/package/Preflate.Rust.nuspec +++ b/package/Preflate.Rust.nuspec @@ -2,7 +2,7 @@ Preflate.Rust - 0.7.5.0 + 0.7.6.0 PreflateRs Compression Rust binaries and libraries kristofr kristofr diff --git a/preflate/src/lib.rs b/preflate/src/lib.rs index e81d6a5..19623d2 100644 --- a/preflate/src/lib.rs +++ b/preflate/src/lib.rs @@ -9,16 +9,15 @@ #![forbid(trivial_casts)] #![forbid(trivial_numeric_casts)] #![forbid(non_ascii_idents)] -#![forbid(unused_extern_crates)] -#![forbid(unused_import_braces)] #![forbid(redundant_lifetimes)] #![forbid(single_use_lifetimes)] -#![forbid(unused_crate_dependencies)] -#![forbid(unused_extern_crates)] -#![forbid(unused_lifetimes)] -#![forbid(unused_macro_rules)] #![forbid(macro_use_extern_crate)] #![forbid(missing_unsafe_on_extern)] +#![forbid(unused_import_braces)] +#![warn(unused_crate_dependencies)] +#![warn(unused_extern_crates)] +#![warn(unused_lifetimes)] +#![warn(unused_macro_rules)] mod bit_helper; mod cabac_codec; @@ -43,6 +42,7 @@ pub use preflate_error::ExitCode; pub use preflate_error::{AddContext, PreflateError, Result, err_exit_code}; pub use preflate_input::{PlainText, PreflateInput}; +pub use statistical_codec::{CodecCorrection, CountNonDefaultActions}; pub use stream_processor::{ PreflateStreamChunkResult, PreflateStreamProcessor, RecreateStreamProcessor, preflate_whole_deflate_stream, recreate_whole_deflate_stream, diff --git a/util/src/main.rs b/util/src/main.rs index 5d8cca4..1a8ad90 100644 --- a/util/src/main.rs +++ b/util/src/main.rs @@ -1,4 +1,4 @@ -use clap::{Parser, command}; +use clap::Parser; use cpu_time::ProcessTime; use env_logger::Builder; use log::LevelFilter; From 140a5188398250a65703e13a598614a728e94624 Mon Sep 17 00:00:00 2001 From: Kristof Date: Fri, 13 Mar 2026 06:45:16 +0100 Subject: [PATCH 2/4] remove fuzz --- Cargo.lock | 25 ------------------------- Cargo.toml | 2 +- 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 720b8cf..e6c22c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -73,12 +73,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "arbitrary" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" - [[package]] name = "arrayvec" version = "0.7.6" @@ -440,16 +434,6 @@ dependencies = [ "cc", ] -[[package]] -name = "libfuzzer-sys" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f12a681b7dd8ce12bff52488013ba614b869148d54dd79836ab85aafdd53f08d" -dependencies = [ - "arbitrary", - "cc", -] - [[package]] name = "libwebp-sys" version = "0.9.6" @@ -588,15 +572,6 @@ dependencies = [ "env_logger", ] -[[package]] -name = "preflate-rs-fuzz" -version = "0.0.0" -dependencies = [ - "libfuzzer-sys", - "preflate-container", - "preflate-rs", -] - [[package]] name = "preflate-rs-root" version = "0.7.6" diff --git a/Cargo.toml b/Cargo.toml index aafbffd..eaaf6a0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ rust-version.workspace = true debug = true [workspace] -members = ["preflate", "container", "dll", "util", "fuzz"] +members = ["preflate", "container", "dll", "util"] resolver = "2" [workspace.package] From 22a16cb45e7b389210d94f8354b6e9231678df57 Mon Sep 17 00:00:00 2001 From: Kristof Date: Fri, 13 Mar 2026 07:24:38 +0100 Subject: [PATCH 3/4] update end-to-end tests with new versions --- tests/end_to_end.rs | 114 +++++++++++++++++++++++++++++++------------- 1 file changed, 82 insertions(+), 32 deletions(-) diff --git a/tests/end_to_end.rs b/tests/end_to_end.rs index 0458039..676d793 100644 --- a/tests/end_to_end.rs +++ b/tests/end_to_end.rs @@ -405,12 +405,12 @@ fn compression_benchmark_overhead_size() { Ok(30), Ok(36), Ok(23), - Ok(25), - Ok(4070), - Ok(4474), - Ok(3759), + Ok(23), + Ok(44), + Ok(2503), + Ok(1803), Ok(49), - Ok(37), + Ok(27), Err(ExitCode::NoCompressionCandidates), ], }, @@ -464,40 +464,90 @@ fn compression_benchmark_overhead_size() { }, ]; - for i in bench.iter() { - let mut result = Vec::new(); - - for level in 0..=9 { - let compressed = (i.compress_fn)(&original, level); - - let r = preflate_whole_deflate_stream(&compressed, &PreflateConfig::default()); + struct LevelResult { + compressed_size: usize, + overhead: Result, + } - match r { - Ok((r, _)) => { - result.push(Ok(r.corrections.len())); - } - Err(e) => { - result.push(Err(e.exit_code())); + // Collect all results first so the table can be printed before asserting. + let all_results: Vec> = bench + .iter() + .map(|i| { + (0..=9) + .map(|level| { + let compressed = (i.compress_fn)(&original, level); + let compressed_size = compressed.len(); + let overhead = + match preflate_whole_deflate_stream(&compressed, &PreflateConfig::default()) + { + Ok((r, _)) => Ok(r.corrections.len()), + Err(e) => Err(e.exit_code()), + }; + LevelResult { + compressed_size, + overhead, + } + }) + .collect() + }) + .collect(); + + // Print a comparison table so regressions and improvements are visible at a glance. + println!( + "\nOverhead benchmark — original = {} bytes\n", + original.len() + ); + for (i, results) in bench.iter().zip(all_results.iter()) { + println!("{}:", i.name); + println!( + " {:>3} {:>11} {:>11} {:>11} {:>9} {}", + "Lv", "Compressed", "Expected", "Actual", "Delta", "Status" + ); + for (level, (result, expected)) in results.iter().zip(i.overhead.iter()).enumerate() { + let expected_str = match expected { + Ok(v) => format!("{}", v), + Err(e) => format!("{:?}", e), + }; + let actual_str = match &result.overhead { + Ok(v) => format!("{}", v), + Err(e) => format!("{:?}", e), + }; + let (delta_str, status) = match (expected, &result.overhead) { + (Ok(exp), Ok(act)) => { + let delta = *act as i64 - *exp as i64; + let status = if delta < 0 { + "BETTER" + } else if delta > 0 { + "WORSE" + } else { + "ok" + }; + (format!("{:+}", delta), status) } - } + (exp, act) if exp == act => ("=".to_string(), "ok"), + _ => ("?".to_string(), "CHANGED"), + }; + println!( + " {:>3} {:>11} {:>11} {:>11} {:>9} {}", + level, + result.compressed_size, + expected_str, + actual_str, + delta_str, + status + ); } + println!(); + } + // Now assert — failures will name the compressor and show the diff above. + for (i, results) in bench.iter().zip(all_results.iter()) { + let actual: Vec<_> = results.iter().map(|r| r.overhead.clone()).collect(); assert_eq!( - result, i.overhead, + actual, + i.overhead.as_ref(), "compression overhead mismatch for {}", i.name ); } - - for i in bench.iter() { - print!("{}: [", i.name); - - for i in i.overhead.iter() { - match i { - Ok(v) => print!("{:.2}%, ", (*v as f32) * 100.0 / (original.len() as f32)), - Err(e) => print!("{:?}, ", e), - } - } - println!("]"); - } } From 788d3ed33c35952369b4f8b5241f5e6d030fc393 Mon Sep 17 00:00:00 2001 From: Kristof Date: Fri, 13 Mar 2026 10:03:48 +0100 Subject: [PATCH 4/4] fix formatting --- tests/end_to_end.rs | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/tests/end_to_end.rs b/tests/end_to_end.rs index 676d793..87bcc8f 100644 --- a/tests/end_to_end.rs +++ b/tests/end_to_end.rs @@ -477,12 +477,13 @@ fn compression_benchmark_overhead_size() { .map(|level| { let compressed = (i.compress_fn)(&original, level); let compressed_size = compressed.len(); - let overhead = - match preflate_whole_deflate_stream(&compressed, &PreflateConfig::default()) - { - Ok((r, _)) => Ok(r.corrections.len()), - Err(e) => Err(e.exit_code()), - }; + let overhead = match preflate_whole_deflate_stream( + &compressed, + &PreflateConfig::default(), + ) { + Ok((r, _)) => Ok(r.corrections.len()), + Err(e) => Err(e.exit_code()), + }; LevelResult { compressed_size, overhead, @@ -529,12 +530,7 @@ fn compression_benchmark_overhead_size() { }; println!( " {:>3} {:>11} {:>11} {:>11} {:>9} {}", - level, - result.compressed_size, - expected_str, - actual_str, - delta_str, - status + level, result.compressed_size, expected_str, actual_str, delta_str, status ); } println!();