zlib

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
zlib
//zlib.net/
zlib logo
Información general
Lanzamiento inicial 01 de mayo de 1995
Última versión estable 1.2.11
15 de enero de 2017
Género Compresión de datos
Programado en C
Sistema operativo Multiplataforma
Licencia Licencia Zlib
[editar datos en Wikidata]

zlib es una biblioteca de software utilizada para compresión de datos. Fue escrito por Jean-loup Gailly y Mark Adler y es una abstracción del algoritmoDEFLATE de compresión utilizado en el programa de compresión del archivo gzip . zlib Es también un componente crucial de muchas plataformas de software incluyendo Linux, Mac OS X, y iOS. También ha sido utilizado en consolas de videojuegos como el PlayStation 4, PlayStation 3, Wii U, Wii, Xbox One y Xbox 360.

La primera versión pública de zlib, 0.9, fue liberada el 1 de mayo de 1995 y fue originalmente pensada para usarla con la biblioteca libpng. Es software libre distribuido bajo la Licencia Zlib.

Capacidades[editar]

Encapsulación[editar]

Para comprimir los datos zlib usa gzip o algún wrapper de zlib . El wrapper encapsula los datos originales del algoritmo DEFLATE añadiendole un encabezado y un pie. Esto proporciona identificación y detección de errores que no están presentas en los datos originales.

El encabezado utilizado en el formato de archivo gzip es más grande que el de zlib. Cuando almacena un nombre de archivo y otra información de sistema del archivo.

Algoritmo[editar]

A Febrero de 2010 , zlib sólo soporta un algoritmo llamado DEFLATE,  es una variación de LZ77 (Lempel@–Ziv 1977). Este algoritmo proporciona buena compresión  en una amplia variedad de datos con un uso mínimo de recursos de sistema. Es también conocido como formato de archivo de la CREMALLERA.

El encabezado permite otros algoritmos, pero actualmente ninguno fue implementado.

Uso de recursos[editar]

Zlib proporciona facilidades para el control del uso  del procesador y de memoria. Se le puede indicar un parametro para aumentar la velocidad en detrimento de la compresión. También se puede limitar el uso de la memoria.

Estrategia[editar]

La compresión puede ser optimizada para ciertos datos. Si usa datos que siempre mantengan cierta estructura, usar una estrategia especifica puede mejorar el ratio de compresión y de rendimiento. Por ejemplo, si los datos contienen longitudes largas de bytes repetidos, la estrategia RLE (carrera-la longitud que codifica)  puede dar buenos resultados de velocidad. Para datos generales, la configuración por defecto es la preferida.

Longitud de datos[editar]

No hay ningún límite a la longitud de datos que puede ser comprimido o descomprimidos. Repetidos llamados a la biblioteca permite un ilimitado números de bloques de datos. Algunos contadores pueden sufrir de desbordamiento de buffers pero esto no afecta la compresión o descompresión.

Cuando el conjunto de datos es muy largo(o infinito) se recomienda regularmente escribir en disco.

Aplicaciones[editar]

Hoy, zlib es algo de un estándar de facto, al punto que zlib y DEFLATE son a menudo usados indistintamente en documentos , con miles de las aplicaciones que confían en su compresión, directamente o indirectamente.[1]​ Estos incluyen:

  • Linux kernel, donde zlib es usado  en protocolos de red, sistemas de archivo , y para descomprimir el kernel cuando inicial el sistema operativo.
  • GNU Binutils Y GNU Depurador (GDB)
  • libpng, la implementación de referencia para el formato de imagen PNG, el cual especifica DEFLATE como la compresión para su datos bitmap.
  • libwww, un API para  aplicaciones web igual que navegadores de Web.
  • El servidor de HTTP del apache, el cual utiliza zlib para implementar HTTP/1.1.
  • El OpenSSH cliente y servidor, los cuales usan en zlib la compresión ofrecida por el protocolo de Secure Shell.
  • El OpenSSL y GnuTLS, los cuales pueden utilizar zlib para comprimir conexiones TLS.
  • La biblioteca multimedia FFmpeg , el cual utiliza zlib para leer y escribir datos en  DEFLATE, como por ejemplo en Matroska.
  • El sincronizador de archivo remoto rsync, el cual utiliza zlib para comprimir los datos.
  • El dpkg y RPM directores de paquete, los cuales utilizan zlib para desempaquetar archivos de paquetes de software comprimido.
  • Los sistemas de control de versiones Subversion y CVS , los cuales utilizan zlib para comprimir el tráfico desde y hacia los repositorios remotos.
  • El Git sistema de control de la versión utiliza zlib para almacenar los contenidos de sus objetos de los datos (blobs, árboles, commit y etiquetas).
  • El PostgreSQL RDBMS usa zlib como formato de exportación(pg_vertedero -Fc) para copias de seguridad de la base de datos.
  • La clase.IO.Compresión.DeflateStream Del Microsoft .Marco NETO 2.0 o superior.[2]
  • El "deflate" utilidad en TORNADO cuando parte de VxWorks el sistema operativo hecho por Sistemas de Río del Viento utiliza zlib para comprimir imágenes de ROM de la bota.

zlib es también utilizado en muchos dispositivos embebidos, como el iPhone de Apple y la Sony PlayStation 3, porque el código es portátil, tiene licencia libre, y tiene poco uso de memoria.

Vease también[editar]

Referencias[editar]

  1. Gailly, Jean-loup; Adler, Mark (18 de abril de 2002), zlib Applications 
  2. System.IO.Compression.DeflateStream. MSDN Library.

Enlaces externos[editar]