v1.1.0 — faster codec path, new plugin coordinates
Breaking: plugin coordinates moved
The Maven group and the Gradle plugin ID moved from io.github.kukis13 to
com.ljarocki:
plugins {
id 'com.ljarocki.parallel-zip' version '1.1.0' // was io.github.kukis13.parallel-zip
}
tasks.register('dist', com.ljarocki.parallelzip.ParallelZip) { // was io.github.kukis13.parallelzip.ParallelZip
from 'build/staging'
archiveFileName = 'dist.zip'
store = false // true = STORE everything (fastest, ~larger)
threads = 12 // default: available processors
}Existing users need to update the id and any direct ParallelZip/ParallelZipPlugin
class references. Nothing else about usage changes.
What's faster
- New incompressibility sniff: probes large entries before compressing and STOREs
them instead if they clearly won't shrink (already-compressed jars/binaries/media) —
the single biggest win in this release, especially on jar-heavy archives. - Per-thread native libdeflate handle reuse + batched JNI calls, replacing
alloc-per-call, cutting overhead on archives with many small entries. - Small entries batched into fewer compression tasks, and unfiltered entries read
lazily on a worker thread instead of eagerly on Gradle's single-threaded copy walk
(the bigger of the two).
Net effect across the 11 projects in BENCHMARKS.md: parallel-zip
DEFLATE (libdeflate) is now 1.65×–9.67× faster than Gradle's Zip task (up from
1.64×–4.78× before this release), with no regressions on any corpus. DEFLATE now trades
up to ~0.8% archive size for that speed on a few corpora — still the safe default.
Compatibility
- Verified Gradle 9 support (fixed Gradle 9 deprecations) alongside Gradle 8.
- Declared Configuration Cache compatibility.
- Dropped the foojay-resolver plugin: the build now fails loudly if JDK 17 isn't
already installed, instead of silently auto-downloading one. - Fixed the native accelerator build on non-MSVC (MinGW) Windows toolchains.
Benchmarks
Full refreshed 11-project table and methodology in
BENCHMARKS.md.