zlib-rs supera a sus equivalentes en C y lidera la descompresión más rápida en su clase

La biblioteca de compresión zlib-rs, desarrollada en Rust por la Trifecta Tech Foundation, se consolida como la implementación zlib más rápida conocida para descompresión, superando incluso a proyectos optimizados como zlib-ng y zlib-chromium.

La versión 0.4.2 de zlib-rs ha introducido mejoras clave en rendimiento que sitúan a esta biblioteca en la cima del ecosistema de compresión. Con un enfoque en seguridad mediante memoria segura y soporte para SIMD avanzado, zlib-rs demuestra que Rust puede ofrecer no solo seguridad, sino también velocidad frente a sus equivalentes escritos en C.

La fundación ha publicado un completo panel de rendimiento que compara en tiempo real su desarrollo principal con otras implementaciones, además de hacer seguimiento histórico de su evolución y evitar regresiones.


Descompresión: líder absoluto

En pruebas comparativas contra zlib-ng —una de las bibliotecas C más avanzadas— y zlib-chromium, zlib-rs ha mostrado ser sistemáticamente más rápido a partir de tamaños de bloque de 32 bytes en adelante. En condiciones más realistas (bloques de entre 1 y 64 kilobytes), los resultados son contundentes: más de un 10 % de mejora sobre zlib-ng en muchos casos, y una ventaja estable frente a zlib-chromium a partir de bloques medianos.

La clave está en la estrategia de multiversión dinámica: una técnica que permite seleccionar en tiempo de ejecución la versión más óptima de una función, según las capacidades SIMD del procesador del usuario. De esta forma, se evita cargar instrucciones que no están soportadas, garantizando tanto compatibilidad como máximo rendimiento sin recompilar.

Además, se ha incorporado soporte para DFA jump threading, una optimización de LLVM propuesta por el desarrollador Nikita Popov que permite acelerar máquinas de estados finitos deterministas, clave en la lógica de descompresión de zlib-rs. Esta técnica mejora especialmente los casos de uso en los que los datos llegan en pequeños fragmentos, como en aplicaciones de streaming.


Compresión: avances prometedores

Aunque la mayor parte del enfoque actual está en la descompresión, zlib-rs también avanza en tareas de compresión. En pruebas comparativas con zlib-ng, el rendimiento de zlib-rs es mixto, pero destaca con una mejora de más del 13 % en el nivel de compresión máximo (nivel 9), y más del 6 % en el nivel por defecto (nivel 6).

Sin embargo, aún hay margen de mejora en niveles de compresión bajos y medios. Según el equipo, seguirán trabajando activamente en este frente, destacando las contribuciones recientes del desarrollador Brian Pane.


Integración en Rust y C

zlib-rs es compatible tanto con proyectos en Rust como en C:

  • En Rust, se recomienda usar el paquete flate2 versión 1.1.0 con la bandera de característica zlib-rs, lo que permite aprovechar esta implementación sin cambiar el código existente.
  • En C, puede compilarse como una biblioteca dinámica compatible con la API tradicional de zlib (libz). Esto facilita su uso en proyectos heredados o modernos que busquen mejorar la seguridad sin perder rendimiento.

Aunque zlib-rs ya cubre prácticamente toda la funcionalidad esperada, aún faltan algunas funciones menos comunes relacionadas con archivos .gz. La Trifecta Tech Foundation está buscando financiación para completar el trabajo, con un presupuesto estimado de 95.000 euros, que incluye mejoras de empaquetado, finalización de la API y rendimiento adicional.


Un paso adelante en seguridad y rendimiento

La migración desde bibliotecas C a alternativas escritas en Rust como zlib-rs responde a una necesidad crítica: minimizar vulnerabilidades de memoria en componentes ampliamente utilizados. La iniciativa, parte del programa de compresión de datos de la Trifecta Tech Foundation, busca no solo ser más rápida, sino más segura y sostenible.

Con soporte multiplataforma, autoselección de instrucciones SIMD en tiempo de ejecución y un enfoque transparente hacia el código abierto, zlib-rs demuestra que es posible superar décadas de desarrollo en C con una arquitectura moderna, eficiente y segura.

Referencia: zlib-rs is faster than C

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana.

¡Apúntate a nuestro newsletter!


– patrocinadores –

Noticias destacadas

– patrocinadores –

¡SUSCRÍBETE AL BOLETÍN
DE LOS SYSADMINS!

Scroll al inicio
×