Rilasciato zstd 1.4.4: decompressione più veloce

0

Il campo dei tool di compressione senza perdita di informazioni (e relativa decompressione) è da sempre centrale in informatica, e ancora di più per gli utenti. Chi non ha mai avuto a che fare con un archivio zip? Il verbo “zippare” è perfino diventato di uso comune.
Gli algoritmi disponibili sono veramente tanti, e ne vengono sviluppati di nuovi in continuazione. In passato, per esempio, ne abbiamo parlato sia per compiti generici che per compiti specifici.

Di solito bisogna scegliere tra capacità (file piccoli rispetto all’originale) e velocità. Alcuni algoritmi cercano di avere la penalità solo in fase di compressione. Seguono questa logica quelli usati per DVD e Blu-ray, in cui il tempo necessario per creare un buon file non importa, ma la decodifica deve essere sufficientemente leggera per garantire la velocità di lettura (e quindi una visione fluida) a qualunque lettore compatibile.

Google si è già vista promotrice di brotli, integrandolo in Chrome, come algoritmo generico. Ma Facebook non è rimasta a guardare e da qualche anno propone un suo strumento: Zstandard, o zstd (nome compresso? 😉 ).
Questo algoritmo promette di potersi adattare a molti profili, da quelli in cui la velocità di compressione è fondamentale a quelli in cui invece è importante la compressione. Il tutto rimanendo particolarmente veloce (e leggero) in decompressione.
Viene fornito con un tool da riga di comando in grado di decomprimere – ma anche creare – altri formati: gzip, lz4 e xz.

La sua diffusione è stata davvero rapida, e proposta l’applicazione anche in ambiti particolari, come la compressione online per btrfs (non a caso, altra tecnologia di cui Facebook è grande utilizzatrice). Inoltre rende disponibile l’implementazione (le librerie) in vari linguaggi, permettendo virtualmente a qualunque sviluppatore di farne uso.
Sembra che effettivamente zstd sia in grado di mantenere le promesse, ed una prova ne è l’adozione come formato di default per i pacchetti di Arch Linux, resa ufficiale con l’annuncio dell’ultima versione di pacman (il suo packet manager).

Visto il largo uso, per una tecnologia emergente, si potrebbe pensare che zstd sia maturo, e il suo sviluppo ormai fermo per concentrarsi sulla manutenzione. E invece il rilascio di qualche giorno fa della versione 1.4.4 dimostra che il progetto è ben vivo: rispetto alla versione appena prima le prestazioni in decompressione migliorano del 10%, cifre tutt’altro che trascurabili. Risulta solo un +3% per la fase di compressione, ma in questo caso abbiamo grandi semplificazioni nella inizializzazione del processo.

Troviamo anche la gestione di nuovi parametri, utili per compressioni di stream di dati, ma anche una libreria composta in WebAssembly, un modo di distribuire software specifico per browser: che sia l’attacco frontale a brotli?

Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.