Vladimir Sitnikov created COMPRESS-710:
------------------------------------------

             Summary: Modularize Commons Compress into per-format artifacts to 
reduce attack surface
                 Key: COMPRESS-710
                 URL: https://issues.apache.org/jira/browse/COMPRESS-710
             Project: Commons Compress
          Issue Type: Improvement
          Components: Archivers, Compressors
            Reporter: Vladimir Sitnikov


Split org.apache.commons:commons-compress into a small core plus pluggable 
per-format modules (e.g., commons-compress-tar, commons-compress-zip, 
commons-compress-7z, …). Keep the current monolithic jar as a meta-artifact 
that depends on the modules for full backward compatibility. Goal: let 
consumers include only the formats they actually use, minimizing attack 
surface, transitive dependencies, and CVE blast radius.

Motivation
* Real-world users often need just TAR/TGZ (or just ZIP), yet must ship the 
entire codebase for all formats.
* Recent vulnerabilities in parsers for formats many users don’t touch still 
require org-wide rollouts because everything ships together.
* Security guidance increasingly favors least privilege / minimal dependency 
footprint.
* Some codecs (xz, zstd, brotli) already rely on optional deps; modularization 
would make such choices explicit and auditable.

Goals
* Make it possible to depend on only the needed formats (e.g., only tar).
Preserve source and binary compatibility for common APIs where feasible.
* Keep usage simple (no complex service bootstrapping for most users).

Non-Goals (initial phase)
* Rewriting format implementations.
* Changing public APIs unless strictly necessary.
* Introducing breaking changes for end-users who continue using the monolithic 
artifact.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to