Zip proporciona capacidades aproximadamente equivalente a la combinación de alquitrán con gzip.
tar solo recopila una serie de archivos en un solo archivo, conservando información sobre los archivos originales (por ejemplo, rutas, fechas). Contrariamente a la afirmación en la pregunta, hace sin compresión por sí mismo. gzip simplemente toma un solo archivo y lo comprime.
Zip hace ambas cosas, es decir, almacena una cantidad de archivos constituyentes en un archivo (una vez más, conserva elementos como rutas de acceso, fechas, etc.) y los comprime. A diferencia de tar + gzip, comprime cada archivo individualmente y deja sin comprimir la información del "directorio" sobre los archivos constituyentes. Esto hace que sea más fácil trabajar con archivos individuales en el archivo (insertar, eliminar, descomprimir, etc.) pero también significa que, en general, no tendrá la compresión adecuada.
En lugar de volver a implementar el algoritmo de compresión de zip, es casi seguro que es mejor descargar el código (extremadamente portátil, licencia muy liberal) desde el zlib web site. El sitio web zlib tiene un bastante razonable explanation de los algoritmos. Si realmente insiste en hacerlo usted mismo, probablemente también desee consultar RFC 1950, 1951 y 1952.
ZIP puede usar cualquiera de varios algoritmos. Hay una especificación en la web en alguna parte ... –
Ah, [aquí está] (http://www.pkware.com/documents/casestudies/APPNOTE.TXT): Deflate, Deflate64, Implode, BZIP2, LZMA, o PPMd +. –