¿Cuál es una buena biblioteca de Java para comprimir / descomprimir archivos? [cerrado

Vi la biblioteca Zip predeterminada que viene con las bibliotecas de compresión JDK y Apache y no estoy contento con ellas por 3 razones:

Están hinchados y tienen un mal diseño de API. Tengo queescribir 50 líneas de salida de matriz de bytes de placa de caldera, entrada zip, archivar secuencias y cerrar secuencias relevantes y capturar excepciones y mover buffers de bytes por mi cuenta? ¿Por qué no puedo tener una API simple que se vea asíZipper.unzip(InputStream zipFile, File targetDirectory, String password = null) yZipper.zip(File targetDirectory, String password = null) que simplemente funciona?

arece que descomprimir descomprime destruye los metadatos del archivo y el manejo de la contraseña está roto.

Además, ¿todas las bibliotecas que probé eran 2-3 veces más lentas en comparación con las herramientas zip de línea de comandos que obtengo con UNI

Para mí (2) y (3) son puntos menores, pero realmente quiero una buena biblioteca probada con una interfaz de una línea.