À propos du projet
compress est un module Go regroupant des implémentations optimisées de compression et décompression. Il s'installe avec `go get github.com/klauspost/compress@latest` et prend en charge la version actuelle de Go ainsi que deux versions antérieures. Les balises de construction `nounsafe` et `noasm` permettent respectivement de désactiver l'utilisation du paquet unsafe ou du code assembleur.
Paquets inclus :
- zstd : Compression et décompression Zstandard implémentées en pur Go, avec encodage de flux concurrent, dictionnaires, encodage delta, gestion d'en-têtes de trames, et chemins assembleur pour amd64 et arm64.
- s2 : Décrit comme un remplacement haute performance de Snappy, avec flux concurrents, dictionnaires, estimation de taille, encodeurs de flux personnalisés, et convertisseurs pour blocs LZ4 et Intel LZ4s.
- flate : Implémentation deflate optimisée utilisable comme remplacement direct de gzip, zip et zlib, avec niveaux réglables, prise en charge de dictionnaires, compression à fenêtre limitée, et points de contrôle d'inflation.
- snappy : Remplacement direct de github.com/golang/snappy, offrant un comportement de compression différent et des flux concurrents.
- lzw : Remplacement direct de compress/lzw, avec compression et décompression plus rapides selon les données.
- huff0 et fse : Implémentations d'encodage d'entropie brutes (Huffman et FSE).
- xpress : Décompression des formats Microsoft XPRESS (MS-XCA) LZ77 simple et LZ77+Huffman, ce dernier étant utilisé dans les images WIM et les données Windows Compact OS/WOF.
- gzhttp : Wrappers client et serveur pour gérer les requêtes HTTP compressées gzip et zstd, incluant la négociation de contenu, la gestion ETag, et une atténuation optionnelle de BREACH.
- pgzip : Un paquet séparé fournissant une implémentation gzip parallèle.
Le README documente également un journal des modifications complet couvrant les versions de v1.15.x à v1.20.1, listant les corrections de bogues, les correctifs de sécurité, le travail de performance, et de nouvelles fonctionnalités telles que l'assembleur arm64, les constructeurs de dictionnaires, et l'encodage de flux concurrent zstd. Le projet est écrit en Go et est destiné aux développeurs intégrant la compression dans des applications ou services Go.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.