Эван Хан выложил ZIP Shrinker, браузерную утилиту, которая уменьшает размер ZIP-архивов без потери обратной совместимости. Работает в том числе с форматами, которые внутри ZIP: APK, EPUB, JAR, OOXML и так далее.
Что делает утилита:
— Перекомпрессирует каждый файл с более сильным Deflate. Под капотом libdeflate (Эван собрал libdeflate.js, WebAssembly-обёртку), для скорости. Альтернатива Zopfli сжимает чуть лучше, но сильно дольше.
— Удаляет необязательные метаданные (комментарии и прочее).
— Удаляет записи для директорий, потому что большинству экстракторов они не нужны.
Что получается в анекдотических тестах:
— Исходники Linux v6.19: минус 15,8 МиБ, около 5,62 процента.
— EPUB «Ромео и Джульетта» из Project Gutenberg: минус 51,2 КиБ, около 18,16 процента.
— Signal для Android v8.3.4 в виде APK: минус 25,6 МиБ, около 30,06 процента.
Что это даёт. Формат остаётся ZIP, архив открывается старыми распаковщиками, место экономится. Если бы Project Gutenberg перекомпрессировал все EPUB-книги, мог бы заметно сократить трафик.
Утилита открытая, исходники на Codeberg.
@prog_tools (теперь и в Max)
Post #2779
2.43K
- 👍 5