• 3 min de lectura
misa77 afirma decodificación 2x más rápida que LZ4
El códec de código abierto misa77 apunta a cargas de trabajo de datos escritos una vez y leídos muchas veces, con descompresión muy rápida, relaciones de compresión modestas y compresión lenta.

Imagen: Hacker News
Un nuevo códec de código abierto llamado misa77 se presenta para un nicho específico: datos escritos una vez y leídos muchas veces que se benefician de una descompresión de un solo hilo extremadamente rápida. En su versión v0.2.0, el proyecto afirma que puede decodificar a aproximadamente 2× la velocidad de LZ4 y, a menudo, ofrecer mejores relaciones de compresión, aunque la contraprestación es una compresión mucho más lenta.
misa77 es un códec basado en LZ sin backend de entropía, por lo que su autor lo sitúa frente a herramientas como LZ4 en lugar de zstd. Los objetivos de diseño son directos:
- Muy alto rendimiento de descompresión
- Relaciones de compresión modestas
- Uso de memoria constante independientemente del tamaño de entrada
- Compresión lenta como coste de esas decisiones
El proyecto indica que el uso de memoria se mantiene en 5 MB o menos en todos los modos de compresión, mientras que la descompresión utiliza 0 MB de memoria extra. También afirma una peculiaridad útil: los archivos comprimidos de forma más agresiva a veces pueden descomprimirse más rápido, lo que hace atractivos los modos de mayor esfuerzo a pesar del tiempo adicional de compresión.
En un Intel Core i7-14650HX con Turbo desactivado, asignado a un único núcleo de alto rendimiento, los benchmarks publicados muestran a misa77 muy por delante de LZ4 en velocidad de descompresión en dos conjuntos de prueba comunes. En el Silesia Corpus, misa77 0.2.0 -0 alcanza 5219 MB/s de descompresión con una relación de compresión de 42.64, frente a LZ4 1.10.0 con 2505 MB/s y 47.59. En enwik8, misa77 0.2.0 -0 llega a 4802 MB/s con una relación de compresión de 48.59, comparado con LZ4 a 2355 MB/s y 57.26.
El códec actualmente ofrece dos niveles principales de compresión:

Recomendado
Samsung 990 SSD alcanza 7,250 MB/s con opción de 2TB
- Nivel 0: mejor rendimiento de descompresión, relación de compresión ligeramente peor
- Nivel 1: rendimiento de descompresión ligeramente peor, mejor relación de compresión
El autor afirma que misa77 suele estar en la frontera de Pareto entre rendimiento de descompresión y relación de compresión, especialmente en archivos compresibles. En un desglose por archivo del corpus Silesia, según se informa el nivel 0 se descomprimió más rápido que LZ4 en los 12 archivos, mientras que otros niveles superaron a LZ4 en 11 de 12. El caso atípico fue x-ray, descrito como datos altamente incomprimibles donde LZ4 efectivamente recurre a un comportamiento similar a memcpy.
Requisitos de compilación y limitaciones actuales
misa77 requiere un compilador C++20, CMake 3.20+ y un sistema little-endian de 64 bits. La interfaz de línea de comandos (CLI) está orientada a Linux y macOS a través de POSIX. En x86-64, AVX2/SSE2 se seleccionan en tiempo de ejecución; otras arquitecturas usan una ruta portátil que, según el autor, se auto-vectoriza en sistemas como Apple ARM.
La biblioteca expone una pequeña API en C++, y la herramienta de línea de comandos misa, sin dependencias, soporta tres comandos basados en archivos:
- compress
- decompress
- suggest
Hay advertencias. El formato aún puede cambiar porque el proyecto está en la serie v0.x.y, y a partir de v0.2.x el decodificador asume entrada válida. El autor dice que un decodificador seguro frente a entradas inválidas está previsto para v0.3.0; por ahora, la entrada inválida se trata explícitamente como comportamiento indefinido. El proyecto se publica bajo la licencia MIT.
Computing Editor
Tomas lives in the terminal. He covers chips, laptops, and operating systems with a focus on performance and efficiency. He reads kernel changelogs the way other people read fiction, and he's always on the hunt for the perfect mechanical keyboard switch. If it processes data, Tomas has an opinion on it.
vía Hacker News


