عن المشروع

compress هي وحدة Go تجمع تطبيقات ضغط وفك ضغط محسّنة. تُثبَّت باستخدام `go get github.com/klauspost/compress@latest` وتدعم إصدار Go الحالي بالإضافة إلى إصدارين سابقين. تتيح وسوم البناء `nounsafe` و`noasm` للمستخدمين تعطيل استخدام حزمة unsafe أو كود التجميع على التوالي. الحزم المضمّنة: - zstd: ضغط وفك ضغط Zstandard منفذان بلغة Go خالصة، مع ترميز تدفقات متزامن، وقواميس، وترميز دلتا، ومعالجة ترويسات الإطارات، ومسارات تجميع لمعماريّتي amd64 وarm64. - s2: توصف بأنها بديل عالي الأداء لـSnappy، مع تدفقات متزامنة، وقواميس، وتقدير الحجم، ومشفرات تدفقات مخصصة، ومحوّلات لكتل LZ4 وIntel LZ4s. - flate: تطبيق deflate محسّن يمكن استخدامه كبديل مباشر لـgzip وzip وzlib، مع مستويات قابلة للضبط، ودعم القواميس، وضغط بنافذة محدودة، ونقاط تحقق لفك الضغط inflate. - snappy: بديل مباشر لـgithub.com/golang/snappy، يقدم سلوك ضغط مختلفًا وتدفقات متزامنة. - lzw: بديل مباشر لـcompress/lzw، مع ضغط وفك ضغط أسرع اعتمادًا على البيانات. - huff0 وfse: تطبيقات ترميز إنتروبيا خام (Huffman وFSE). - xpress: فك ضغط صيغ Microsoft XPRESS (MS-XCA) من نوع LZ77 العادي وLZ77+Huffman، حيث تُستخدم الأخيرة في صور WIM وبيانات Windows Compact OS/WOF. - gzhttp: أغلفة للعميل والخادم لمعالجة طلبات HTTP المضغوطة بـgzip وzstd، بما في ذلك التفاوض على المحتوى، ومعالجة ETag، وتخفيف اختياري لهجمات BREACH. - pgzip: حزمة منفصلة توفر تطبيق gzip متوازيًا. يوثق ملف README أيضًا سجل تغييرات واسعًا يغطي الإصدارات من v1.15.x حتى v1.20.1، ويسرد إصلاحات الأخطاء، وإصلاحات الأمان، وأعمال الأداء، والميزات الجديدة مثل تجميع arm64، وبناة القواميس، وترميز التدفقات المتزامن في zstd. المشروع مكتوب بلغة Go وهو موجّه للمطورين الذين يدمجون الضغط في تطبيقات أو خدمات Go.